C++之cin
第一次被cin 迷惑住,就做了些测试得出以下算不上严谨但绝对正确的结论; 并且这个现象应该与c++ IO的具体实现由密切关系;
在数字与字符串的切换间,回车只能影响字符串的读取而影响不了数字;
#include<iostream>
#include<string>
using namespace std;
int main(){
int a,b;
string result;
cin>>a>>b;
getline(cin,result);
cout<<a<<b<<endl;
cout<<result;
return 0;
}
//输入: 1 2
abc
输出: 12
因为在读取2的时如果你输入回车或者空格之后再在进行输入abc的时候则会产生result读取不进去,为什么呢?
而在getline(cin,result);之前加上cin.get()就好了,并且这种现象只在数字 与 字符串输入之间才会发生;而如果输入连续的字符串或者连续的数字 则不会产生这种情况;
并且仅会影响字符串的输入;
#include<iostream>
#include<string>
using namespace std;
int main(){
int a,b,c;
string result;
cin>>a>>b;
cin.get();
getline(cin,result); //输入字符串之后穿插数字;
cin>>c;
cout<<a<<b<<endl;
cout<<result;
cout<<"c is"<<c;
return 0;
}
//这时候c的输入依旧有效;