最近在看C++基础知识,给一个整型输入一个字符值,就会死循环了。
查阅资料也想了好久,也不知道本人的想法对不对….主要是这句代码:
d=cin.get(); 这里假如获取不到int值就返回了-1值,为什么不是0值呢
下附代码,请高手能够细细讲解一下,谢谢了。
#include<iostream>
using namespace std;
int main()
{
int i=cin.get();
cout<<i<<endl;
int d=1;
while((d=cin.get())!=-1)
{
cout<<d<<endl;
cout<<“input;”;
cin>>d;
}
}
查阅资料也想了好久,也不知道本人的想法对不对….主要是这句代码:
d=cin.get(); 这里假如获取不到int值就返回了-1值,为什么不是0值呢
下附代码,请高手能够细细讲解一下,谢谢了。
#include<iostream>
using namespace std;
int main()
{
int i=cin.get();
cout<<i<<endl;
int d=1;
while((d=cin.get())!=-1)
{
cout<<d<<endl;
cout<<“input;”;
cin>>d;
}
}
解决方案
30
5
乍看起来c++的cin、cout、ifstream、ofstream、istringstream、ostringstream在输入、输出上比c的scanf、printf、fscanf、fprintf、fread、fwrite、sscanf、sprintf简单,不用格式控制符!
但是不用格式控制符,输入输出恰好是你期望的格式的时候好说;等到输入输出不是你期望的格式的时候,你就会觉得还是用格式控制符更方便、更靠谱。
摒弃cin、cout、ifstream、ofstream、istringstream、ostringstream!
使用scanf、printf、fscanf、fprintf、fread、fwrite、sscanf、sprintf。
但是不用格式控制符,输入输出恰好是你期望的格式的时候好说;等到输入输出不是你期望的格式的时候,你就会觉得还是用格式控制符更方便、更靠谱。
摒弃cin、cout、ifstream、ofstream、istringstream、ostringstream!
使用scanf、printf、fscanf、fprintf、fread、fwrite、sscanf、sprintf。