web-dev-qa-db-ja.com

Enterキーを押して続行します

これは機能しません:

string temp;
cout << "Press Enter to Continue";
cin >> temp;
35
Elliot
cout << "Press Enter to Continue";
cin.ignore();

または、より良い:

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

試してください:

char temp;
cin.get(temp);

または、さらに良い:

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

文字列入力は、改行だけでなく実際の文字を入力するまで待機すると思います。

9
paxdiablo

cin >> temp with:

temp = cin.get();

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

cin >>はEndOfFileを待ちます。デフォルトでは、cinにはskipwsフラグが設定されます。つまり、抽出される前に空白を「スキップ」し、あなたの文字列に入れてください。

8
Nick Presta

試してください:

_cout << "Press Enter to Continue";
getchar(); 
_

成功すると、読み取られた文字が返されます(int値、int getchar ( void );に昇格されます)。テストブロック(whileなど)で使用できます。

2
Ziezi

Conio.hをインクルードする必要があるので、これを試してください。簡単です。

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

int main() {

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

  return 0;
}
_

それにより、このために文字列やintを必要としませんgetch();

2
HappyMajor

関数 std :: getline (C++ 98で既に導入されている)は、これを実装するための移植可能な方法を提供します。

#include <iostream>
#include <string>

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

これに感謝しました question および answerstd::cin >> temp;は、空の入力では戻りません。だから、オプションのユーザー入力を処理する方法を疑問に思っていました(もちろん、文字列変数は空でもかまいません)。

1
Wolf