做个人学习用(随心情补充)
C++字符串输入问题
如果直接cin>>s,输出的结果只有空格前的字符串
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
getline(cin, s);
cout << s << endl;
}
输入:I love you #^_^#!
输出:I love you #^_^#!
行数为n
,且n
已知。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
getchar();
while (n--)
{
string s;
getline(cin, s);
cout << s << endl;
}
}
- 如果在输入
n
后,输入换行符,再输入字符串,那么原应该输出n
行字符串,最终只输出前面n-1
行;但是,如果再输入n
后,输入空格键,再输入n
行字符串,输出的结果就会是n
行字符串,不过在第一行字符串前面会多输出那个空格。 - 进入循环前,输入
getchar()
就是为了从键盘上读取n
后输入的空格或换行符,使得后面字符串的输入输出不受影响。(个人理解)