【发布时间】:2020-05-17 13:54:35
【问题描述】:
我有一个这样的输入文件:
这是第 1 行。 这是第 2 行。 这第 3 行。我需要输出类似的文件
OddLines.txt:
这是第 1 行。 这第 3 行。EvenLines.txt:
这是第 2 行。这是我的代码。并没有按我的意愿工作。
char buf[256];
int ch;
int lines;
lines = 1;
FILE *myFile = fopen(argv[1], "r");
if (myFile == NULL) {
printf("Open error \n");
exit(-1);
}
FILE *outFile = fopen("oddlines.txt", "w");
FILE *outFile1 = fopen("evenlines.txt", "w");
while (fgets(buf, sizeof(buf), myFile) != NULL) {
if (ch == '\n')
lines++;
else
if ((lines % 2) == 0)
fputs(buf, outFile1);
else
fputs(buf, outFile);
}
fclose(myFile);
fclose(outFile);
fclose(outFile1);
}
【问题讨论】:
-
欢迎来到 Stack Overflow。请阅读the help pages,接受SO tour,阅读How to Ask,以及this question checklist。最后,如果你问的是与一种编程语言相关的问题,那么请不要添加不相关的语言标签。
-
提示:
lines和ch的初始值是多少?ch将如何获得价值?我还建议您在循环内执行一些rubber duck debugging 的代码。这真的有意义吗? -
您希望将这些行连接成输出文件中的单行还是在奇偶文件中显示为单独的行?
标签: c filestream fgets fputs