Press Enter to Continue

半世苍凉 提交于 2019-11-26 20:07:19

问题


This doesn't work:

string temp;
cout << "Press Enter to Continue";
cin >> temp;

回答1:


cout << "Press Enter to Continue";
cin.ignore();

or, better:

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



回答2:


Try:

char temp;
cin.get(temp);

or, better yet:

char temp = 'x';
while (temp != '\n')
    cin.get(temp);

I think the string input will wait until you enter real characters, not just a newline.




回答3:


Replace your cin >> temp with:

temp = cin.get();

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

cin >> will wait for the EndOfFile. By default, cin will have the skipws flag set, which means it 'skips over' any whitespace before it is extracted and put into your string.




回答4:


Try:

cout << "Press Enter to Continue";
getchar(); 

On success, the character read is returned (promoted to an int value, int getchar ( void );), which can be used in a test block (while, etc).




回答5:


You need to include conio.h so try this, it's easy.

#include <iostream>
#include <conio.h>

int main() {

  //some code like
  cout << "Press Enter to Continue";
  getch();

  return 0;
}

With that you don't need a string or an int for this just getch();




回答6:


The function std::getline (already introduced with C++98) provides a portable way to implement this:

#include <iostream>
#include <string>

void press_any_key()
{
    std::cout << "Press Enter to Continue";
    std::string temp;
    std::getline(std::cin, temp);
}

I found this thanks to this question and answer after I observed that std::cin >> temp; does not return with empty input. So I was wondering how to deal with optional user input (which makes sense for a string variable can of course be empty).



来源:https://stackoverflow.com/questions/903221/press-enter-to-continue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!