参照cin.get() をインクルードした後、コンソールが閉じるのはなぜですか?
活用していましたstd::cin.get()
#include<iostream>
char decision = ' ';
bool wrong = true;
while (wrong) {
std::cout << "\n(I)nteractive or (B)atch Session?: ";
if(std::cin) {
decision = std::cin.get();
if(std::cin.eof())
throw CustomException("Error occurred while reading input\n");
} else {
throw CustomException("Error occurred while reading input\n");
}
decision = std::tolower(decision);
if (decision != 'i' && decision != 'b')
std::cout << "\nPlease enter an 'I' or 'B'\n";
else
wrong = false;
}
basic_istream::sentryとstd::cin::getを読みました。
std::getline
ストリームが空ではないため、while ループが 2 回実行されるため、代わりに使用することにしました。
std::string line; std::getline(std::cin, line);
上記の回答の1つに記載されている参照として、std::cin
文字を読み取るためにstd::cin::get
使用され、改行を削除するために使用されます\n
。
char x; std::cin >> x; std::cin.get();
私の質問は、なぜストリームstd::cin
に改行を残すのですか?\n