#include<stdio.h>
main(){
int c;
while(c=getchar()!=EOF){
printf("%d\n",c);
printf("%d-at EOF\n",c);}
}
为什么当输入y的时候输出为两次的
1
1-at EOF呢
还有为什么返回的是1呢
EOF为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。
DO while not EOF(1)解释:判断当eof(1)的值为true时停止do循环。
使用EOF是为了避免因试图在文件结尾处进行输入而产生的错误。
直到到达文件的结尾,EOF函数都返回False。对于为访问Random或Binary而打开的文件,直到最后一次执行的Get语句无法读出完整的记录时,EOF都返回False。
扩展资料:
EOF(filenumber):必要的filenumber参数是一个Integer,包含任何有效的文件号
EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。
BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。
EOF一般是指结尾,比如:SQL 中指针到最后一个 Rs.EOF = True 时,eof是判断SQL取出来的记录是否到末尾了;而bof是判断是不是在记录最前面。
那为什么执行了两次之后才会结束,第二次为什么还是和第一次一样的结果呢
能把两次执行的过程细说一下吗
因为你在输入y的时候还有一个回车呀!回车也算一个字符。当然,你要结束程序只有输入ctrl+d,因为这个组合键一般代表EOF,这也是为什么你的变量c声明为int而不是char类型的原因,因为EOF是int类型的。
本回答被提问者采纳