C ++ espera pela input do usuário

Qual seria a melhor maneira de aguardar a input do usuário no aplicativo de console?

std::cout << "press any key to exit..."; // wait for user to hit enter or another key 

Várias maneiras de fazer isso, aqui estão algumas possíveis abordagens de uma linha:

  1. Use getch() (precisa #include ).

  2. Use getchar() (esperado para Enter , precisa #include ).

  3. Use cin.get() (esperado para Enter , precisa #include ).

  4. Use system("pause") (precisa #include ).

    PS: Este método também será impresso Press any key to continue . . . Press any key to continue . . . na canvas. (Parece escolha perfeita para você :))


Edit: Como discutido aqui , não há solução totalmente portátil para isso. A pergunta 19.1 do FAQ comp.lang.c aborda isso com alguma profundidade, com soluções para Windows, sistemas semelhantes a Unix e até mesmo MS-DOS e VMS.

Um loop while do seria uma boa maneira de esperar pela input do usuário. Como isso:

 int main() { do { cout << '\n' << "Press a key to continue..."; } while (cin.get() != '\n'); return 0; } 

Você também pode usar o system('PAUSE') funções system('PAUSE') mas acho que isso é um pouco mais lento e depende da plataforma

Não há nenhuma function de biblioteca “padrão” para fazer isso. O padrão (talvez surpreendentemente) não reconhece o conceito de “teclado”, embora ele tenha um padrão para “input de console”.

Existem várias maneiras de alcançá-lo em diferentes sistemas operacionais (veja a solução do herohuyongtao), mas ele não é portátil em todas as plataformas que suportam input de teclado.

Lembre-se de que C ++ (e C) são desenvolvidos para serem linguagens que podem ser executadas em sistemas incorporados que não possuem teclados. (Dito isto, um sistema embarcado pode não ter vários outros dispositivos que a biblioteca padrão suporta).

Este assunto foi debatido por um longo tempo.

Podes tentar

 #include  #include  int main() { //some codes getch(); return 0; }