您的代码本身似乎没有问题。
你能测试一下这个并说你的问题是否再次出现了吗?
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char *strrev(char *str)
{
int i = 0;
int j = strlen(str) - 1;
while (i < j) {
char tmp = str[i];
str[i] = str[j];
str[j] = tmp;
++i;
--j;
}
return (str);
}
#define BUFFER_LEN 1024
int main(int argc, char* argv[])
{
char line[BUFFER_LEN + 1];
FILE *fp = NULL;
FILE *fo = NULL;
if (argc != 3 && argc != 4) {
fprintf(stderr, "Devi usare 2 o 3 argomenti grz\n");
return -1;
}
if (!(fp = fopen(argv[1],"r"))) { //argv1=input.txt
fprintf(stderr, "Devi \n");
return -1;
}
if (!(fo = fopen(argv[2], (argc == 4 && strcmp(argv[3],"a")) ? "a" : "w"))) {
fprintf(stderr, " 3 argomenti grz\n");
return -1;
}
while(fgets(line, BUFFER_LEN, fp)) {
for (char *word = strtok(line, " "); word; word = strtok(NULL, " ")) {
fprintf(fo, "%s ", strrev(word));
}
}
fclose(fp);
fclose(fo);
return 0;
}
是否可以编译(&A);运行此代码,然后说“鼠标垫”是否仍在迷失自我?
int main(int argc, char* argv[])
{
FILE *fo = NULL;
if (argc != 3 && argc != 4) {
fprintf(stderr, "Devi usare 2 o 3 argomenti grz\n");
return -1;
}
if (!(fo = fopen(argv[2], "w"))) {
fprintf(stderr, " 3 argomenti grz\n");
return -1;
}
fprintf(fo, "test");
fclose(fo);
return 0;
}