【发布时间】:2017-03-10 13:55:06
【问题描述】:
我正在尝试使用 C 将数据写入文件。我编写了以下代码。
#include<stdio.h>
void main(){
FILE *f1;
char c;
printf("Data Input\n\n");
f1 = fopen("INPUT", "w");
while((c = getchar()) != EOF) putc(c, f1);
fclose(f1);
printf("\nData Output\n\n");
f1 = fopen("INPUT", "r");
while((c=getc(f1)) != EOF) printf("%c", c);
fclose(f1);
}
我必须输入 3 次 EOF 才能使其工作。我不明白为什么会这样。我的代码有错误吗? 我正在使用 Dev-C++ 5.6.3
提前致谢。
【问题讨论】:
-
注意:
void main()是不合时宜的。main()的正确定义是int main (void)和int main (int argc, char **argv)。您还将看到等效且正确的int main (int argc, char *argv[])。有非标准操作系统特定的参数扩展,例如char **envp,但那些不应该用于可移植代码。 -
为什么用
putc写f1,用printf写stdout?使用putc(c, stdout)会更一致