1.如下程序运行
include<iostream>
#include<string>
using namespace std;
int main()
{
string line;
for(int i=0;i<2;i++){
getline(cin,line);
cout<<line<<endl;
}
return 0;
}
[root@promote 20161112]# ./test3
fjaslfjasl
fjaslfjasl
askfaskfaskfjhjk
askfaskfaskfjhjk
运行相当OK!
2.如下程序运行
#include<iostream>
#include<string>
using namespace std;
int main()
{
string line;
int a;
cin>>a;
for(int i=0;i<2;i++){
getline(cin,line);
cout<<line<<endl;
}
return 0;
}
[root@promote 20161112]# ./test3
897
fjasfjals
fjasfjals
发什么神经!
3.要改为下面的程序
include<iostream>
#include<string>
using namespace std;
int main()
{
string line;
int a;
cin>>a;
string haha;
getline(cin,haha);
for(int i=0;i<2;i++){
getline(cin,line);
cout<<line<<endl;
}
return 0;
}
[root@promote 20161112]# ./test3
879
afsjslkafjsakl
afsjslkafjsakl
kajflasjl
kajflasjl
谁能告诉我为什么要提前把空的字符串读走~~~~~~~
本文探讨了在C++中如何正确地结合使用cin和getline函数来读取整行输入,尤其是在cin之后使用getline时遇到的问题及解决办法。通过对比不同情况下的程序示例,解释了为什么需要先读取一个空白行以避免跳过实际的输入。
1317

被折叠的 条评论
为什么被折叠?



