#include<stdio.h>
int main(void) {
FILE *fp;
int ch;
fp = fopen("input.txt", "w");
printf("Enter data");
while ((ch = getchar()) != EOF) {
putc(ch, fp);
}
fclose(fp);
fp = fopen("input.txt", "w");
while ((ch = getc(fp)) != EOF) {
printf("%c", ch);
}
fclose(fp);
}
第一个while
循环如何停止从用户输入?因为有EOF
作为条件存在。
或者我需要use
循环?
EOF
是一个价值,而不是一个功能。它基本上被定义为宏。
作为参考,来自C11
,章节§7.21.1,<stdio.h>
EOF
它扩展为一个整数常量表达式,类型为int
和负值,由几个函数返回以指示文件结束,即不再有来自流的输入; [...]
如果getchar()
失败,它将返回一个定义为EOF
的值。
从手册页引用(强调我的)
fgetc()
,getc()
和getchar()
将读取的字符作为无符号的char转换返回到文件或错误结尾的int或EOF。
EOF
表示可能不适合char
类型的值。你必须使用int
类型为ch
变量。
第一个while循环如何停止从用户输入?
在linux上使用CTRL + D,在Windows上使用CTRL + Z.