它需要解释std::string
和std::getline
如何分别处理空白字符。我运行解决方案提供的代码,但没有得到预期的结果。
以下是代码:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
string word, line;
cout << "choose:1 string,2 getline" << endl;
char ch;
cin >> ch;
if (ch == '1') {
cout << "Please input:Welcome to C++family!" << endl;
cin >> word;
cout << "Effective string:" << word << endl;
return 0;
}
cin.clear();
cin.sync();
if (ch == '2') {
cout << "Please input:Welcome to C++family!" << endl;
getline(cin, line);
cout << "Effective string:" << endl;
cout << line << endl;
return 0;
}
cout << "Error!" << endl;
return -1;
}
当我输入&#34; 1&#34;结果没有问题。但是当我输入&#34; 2&#34;时,它不会让我输入并显示为下划线:
2
Please input :Welcome to C++family!
Effective string:
Enter any key to continue......
我无法理解为什么它会像这样运行,错误是什么 请帮帮我,谢谢。