7个回答
展开全部
1、EOF是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1:#define EOF (-1)。除了表示文件结尾,EOF还可以表示标准输入的结尾。因为有时候无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。
2、在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,可以是文本文件,也可以是标准输入stdin。在文本文件中,数据都是以字符的ASCII代码值的形式存放。对于普通文本,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
在windows平台,stdin输入流的EOF标志是 ctrl + z。
在unix平台,stdin输入流的EOF标志是 ctrl + d。
例程:
#include <stdio.h>
int main(){
int n,i;
int array[25];
while (scanf("%d",&n)!=EOF){ //循环读入n,直到直到crtl+z/d
for (i=0; i<n; i++) scanf("%d",array+i);
for (i=0; i<n; i++)
printf ("%d ",array[i]);
}
return 0;
}
2、在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,可以是文本文件,也可以是标准输入stdin。在文本文件中,数据都是以字符的ASCII代码值的形式存放。对于普通文本,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
在windows平台,stdin输入流的EOF标志是 ctrl + z。
在unix平台,stdin输入流的EOF标志是 ctrl + d。
例程:
#include <stdio.h>
int main(){
int n,i;
int array[25];
while (scanf("%d",&n)!=EOF){ //循环读入n,直到直到crtl+z/d
for (i=0; i<n; i++) scanf("%d",array+i);
for (i=0; i<n; i++)
printf ("%d ",array[i]);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用这样,在C++ Primer中介绍了一种
while(cin>>a)
{语句;}
结束符在windows系统下为ctrl+z(同时键入ctrl与z)在Unix系统下为ctrl+d
在无法判定系统的情况下,你最好两个都试一下。(我家的用ctrl+d)
或者输入与变量 a 不是同种类型的数据来结束输入。
while(cin>>a)
{语句;}
结束符在windows系统下为ctrl+z(同时键入ctrl与z)在Unix系统下为ctrl+d
在无法判定系统的情况下,你最好两个都试一下。(我家的用ctrl+d)
或者输入与变量 a 不是同种类型的数据来结束输入。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
EOF主要是读取文档的时候的结束符号。以此作为判断的条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
例如:
while(!feof(fp))
{fscanf(fp,"%D",&n);
}
这段是文件输入短整形数据n的程序,就是读到结束(fp是文件指针)
while(!feof(fp))
{fscanf(fp,"%D",&n);
}
这段是文件输入短整形数据n的程序,就是读到结束(fp是文件指针)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询