0
爲什麼要在控制檯的第二行輸入內容?
int main() {
string s;
while (true) {
cout << "Input: ";
char a = getline(cin, s).get();
cout << a << endl;
}
return 0;
}
爲什麼要在控制檯的第二行輸入內容?
int main() {
string s;
while (true) {
cout << "Input: ";
char a = getline(cin, s).get();
cout << a << endl;
}
return 0;
}
因爲你是從std::cin
閱讀兩次。
std::getline
函數返回該流,然後您在流上調用get
,這需要您輸入其他內容。
而你顯然只需要輸入一次是因爲你真正進入第二輸入字符:'f'
,'d'
和換行符。所以第一個get
電話會讀取'f'
。然後下一次迭代getline
調用將讀取"d\n"
,get
調用將讀取您編寫的下一個inbput等。
簡單的解決方案?不要致電get
:
getline(cin, s);
cout << s << '\n';