c++怎么用EOF?

杭电的oj要多组测试组一起用c很好弄在while里直接写就可以了c++怎么弄额。。比如这题#include<iostream>usingnamespacestd;void... 杭电的oj要多组测试组一起用c很好弄在while里直接写就可以了c++怎么弄额。。比如这题
#include<iostream>
using namespace std;
void main()
{
char a,b,c;
char x,y,z;

cin>>a>>b>>c;
x=a<b?a:b;
x=c<x?c:x;
z=a<b?b:a;
z=z<c?c:z;
if(a!=x&&a!=z)
y=a;
if(b!=x&&b!=z)
y=b;
if(c!=x&&x!=z)
y=z;
cout<<a<<" "<<b<<" "<<c<<endl;

}
展开
 我来答
tattackor
推荐于2017-10-02 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:878万
展开全部

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;
}
nlwbzd
2012-03-11 · TA获得超过768个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:75.9万
展开全部
写成while (cin >>a>>b>>c)
{
// 循环体我就不写了。
}
就行了,EOF都不用写。
更多追问追答
追问
那是不是以后都不用eof的了?
追答
要用也行,比如:
char c;
while ( (c=cin.get())!=EOF )
{
}
什么的。。。
不过我觉得没必要用(至少我在刷OJ的时候好像用不到)。
因为cin 流本来就是带返回值的,读取成功为true,失败为false;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式