在此C ++代码中:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string S;
getline(cin,S);
cout<<S;
return 0;
}
它将打印带有空格的字符串,例如:
输入:
abc def
输出:
abc def
但是,在此代码中:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
string S;
getline(cin,S);
cout<<S;
return 0;
}
它不打印任何输出,例如:
输入:
1
abc def
输出:
那怎么可能?请帮忙。我要去哪里错了?
答案 0 :(得分:2)
您先读一个数字,然后读一行。仔细考虑发生了什么,换行符不是数字的一部分。因此,如果输入的是123换行符,则读取数字123,然后getline读取换行符。完全没有阅读下一行中的任何内容。