这也是在看题的时候发现的,先贴上代码:
#include<iostream>
#include<string.h>
#include<string>
using namespace std;
int main(void)
{
string str;
int n; cin >> n;
getchar();
while (n--) {
getline(cin, str);
cout << "cout:";
cout << str << endl;
}
system("pause");
return 0;
}
如果不加getchar()再输入n时会有输出常量。原因是cin输入后,会存放在缓冲区,然后getline会从缓冲区中读取内容,所以getline获取输入的n并赋给str,然后继续运行。如若添加getchar,会获取缓冲区内容,也就不会出现提前输出常量。
这虽然是个比较小的细节,但是是有必要记录下来的,毕竟一点细节错误就会wa。