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 s1,s2,r;
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