#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
进行循环吗?
答案 0 :(得分:4)
EOF
是一个值,而不是一个函数。它基本上被定义为宏。
供参考,来自C11
,章节§7.21.1,<stdio.h>
EOF
它扩展为整数常量表达式,类型为int
,负值为 由几个函数返回以指示文件结束,即不再有来自a的输入 流; [...]
如果getchar()
失败,它将返回一个定义为EOF
的值。
从手册页引用(强调我的)
fgetc()
,getc()
和getchar()
将读取的字符作为无符号字符集转换为int或 EOF文件末尾或错误。
EOF
表示可能不适合char
类型的值。您必须对int
变量使用ch
类型。
第一个while循环如何停止从用户输入?
在linux上使用 CTRL + D ,在Windows上使用 CTRL + Z 。