我试图通过从input.txt中读取字符串来简单地复制字符串并将其复制到output.txt。我面临的问题是输出文件不包含输入文件的任何字母。它仅包含字母。
我在做什么错了?
#include <stdio.h>
void main(void) {
char input[45] = "S:/Master/M_32561/9000_A/B11-01/input.txt",
output[45] = "S:/Master/M_32561/9000_A/B11-01/output.txt";
FILE *dtzgr_0, /* Input-Pointer */
*dtzgr_1; /* Output-Pointer */
dtzgr_0 = fopen(input, "r");
if(dtzgr_0 != NULL) {
dtzgr_1 = fopen(output, "w");
int c;
while(c = fgetc(dtzgr_0) != EOF)
fputc(c, dtzgr_1);
fclose(dtzgr_1);
}
else
printf("Can't read %s.", input);
fclose(dtzgr_0);
}
答案 0 :(得分:0)
在operator precedence table中,!=
在=
之前。
所以下面一行:
while(c = fgetc(dtzgr_0) != EOF)
等效于:
while(c = (fgetc(dtzgr_0) != EOF))
因此,如果c
的返回值不是fgetc
,则EOF
的值将为0。
您必须将上面的行更改为此:
while((c = fgetc(dtzgr_0)) != EOF)
然后,您将返回值从fgetc
分配给c
,然后将其与EOF
进行比较。