これは機能しません:
string temp;
cout << "Press Enter to Continue";
cin >> temp;
cout << "Press Enter to Continue";
cin.ignore();
または、より良い:
#include <limits>
cout << "Press Enter to Continue";
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
試してください:
char temp;
cin.get(temp);
または、さらに良い:
char temp = 'x';
while (temp != '\n')
cin.get(temp);
文字列入力は、改行だけでなく実際の文字を入力するまで待機すると思います。
cin >> temp
with:
temp = cin.get();
http://www.cplusplus.com/reference/iostream/istream/get/
cin >>
はEndOfFileを待ちます。デフォルトでは、cinにはskipwsフラグが設定されます。つまり、抽出される前に空白を「スキップ」し、あなたの文字列に入れてください。
試してください:
_cout << "Press Enter to Continue";
getchar();
_
成功すると、読み取られた文字が返されます(int
値、int getchar ( void );
に昇格されます)。テストブロック(while
など)で使用できます。
Conio.hをインクルードする必要があるので、これを試してください。簡単です。
_#include <iostream>
#include <conio.h>
int main() {
//some code like
cout << "Press Enter to Continue";
getch();
return 0;
}
_
それにより、このために文字列やintを必要としませんgetch();
関数 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;
は、空の入力では戻りません。だから、オプションのユーザー入力を処理する方法を疑問に思っていました(もちろん、文字列変数は空でもかまいません)。