按Enter继续

Ell*_*iot 35 c++ string newline cin

这不起作用:

string temp;
cout << "Press Enter to Continue";
cin >> temp;
Run Code Online (Sandbox Code Playgroud)

rlb*_*ond 74

cout << "Press Enter to Continue";
cin.ignore();
Run Code Online (Sandbox Code Playgroud)

或更好:

#include <limits>
cout << "Press Enter to Continue";
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
Run Code Online (Sandbox Code Playgroud)

  • cin与cout绑定,因此在cin的任何i/o发生之前,cout的输出已经被刷新 (4认同)

pax*_*blo 9

尝试:

char temp;
cin.get(temp);
Run Code Online (Sandbox Code Playgroud)

或者,更好的是:

char temp = 'x';
while (temp != '\n')
    cin.get(temp);
Run Code Online (Sandbox Code Playgroud)

我认为字符串输入将等到您输入真实字符,而不仅仅是换行符.


Nic*_*sta 8

替换你cin >> temp:

temp = cin.get();
Run Code Online (Sandbox Code Playgroud)

http://www.cplusplus.com/reference/iostream/istream/get/

cin >>将等待EndOfFile.默认情况下,cin将设置skipws标志,这意味着它会在提取并放入字符串之前"跳过"任何空格.