问题描述
- c++为什么不能用while(cin>>(。。。)!=EOF)来实现一次运行多次数据的输入?
- c语言中用while(scanf(。。。)!=EOF)来实现一次运行的多次输入。 c++为什么不能用while(cin>>(。。。)!=EOF)来实现? 改怎么改? 如下程序为什么不行?
#include
using namespace std;
#define pi 3.1415926
const double PI=3.14;
int main()
{ system(""color 4A"");
double s1s2r;
while((cin>>r)!=EOF)
{s1=PI*r*r; s2=pi*r*r; cout<<""s1=""<<s1<<endl; cout<<""s2=""<<s2<<endl;}system(""pause"");
}
解决方案
改成while(cin>>r)
解决方案二:
这样做的操作结果是比较 cin != EOF 请问你知道这是什么意思吗? 若要改就把cin拿出来cin>>i返回值类型是istream的目的是可以写成:cin>>i>>j,因为cin>>i是一个istream,和cin类型是一样的,才可以继续"">>j""。
解决方案三:
EOF是一个宏,值是-1,cin不是函数,没有返回值,也就没办法去比较了
解决方案四:
其实while(cin>>r)就ok啊,如果你还要判断r是否为0,就只需while(cin>>r,r),截止是ctrl+z
时间: 2024-11-28 15:42:59