EOF即End of File,表示文章结尾。
C语言提供了两种方式使用键盘输入模拟EOF,即Ctrl+D或Ctrl+Z。
经检测,VS2020中需要连续输入2或3次Ctrl+Z和回车才能成功模拟EOF。
使用以下程序演示:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(void)
{
int n = 0;
char arr1[20] = "0";
printf("请输入一句话(20个字符以内):");
//用scanf输入EOF时,循环结束
for (n = 0; scanf("%c", &arr1[n]) != EOF; n++);
printf("您输入的是:%s\n", arr1);
return 0;
}
以下是输出结果:
可以看到,在输入两次Ctrl+Z和回车之后for循环才结束,说明VS2022需要两次Ctrl+Z和回车才能成功模拟EOF。
注意:
- 一次性输入多个Ctrl+Z再回车是没有意义的,如下图:
依然需要两次回车才能模拟EOF,所以每次输入完Ctrl+Z后需要再输入一次回车。
- 输入Ctrl+Z前需要先输入\n,即回车,否则Ctrl+Z也会被视为输入进字符串的字符。
如上图,Ctrl+Z被识别成一个字符并输入进字符数组arr1中。