私は初心者で、1文字のみを入力するように制限しようとしています。cin.get(char)
を認識しています。他の文字はバッファに残さないようにします。ここで私のコードのサンプルはEOFを使用していますが、動作していないようです。C++で1文字のみを入力するようにユーザを制限するには
#include <iostream>
#include <sstream>
using namespace std;
string line;
char category;
int main()
{
while (getline (cin, line))
{
if (line.size() == 1)
{
stringstream str(line);
if (str >> category)
{
if (str.eof())
break;
}
}
cout << "Please enter single character only\n";
}
}
これは数字入力に使用していますが、eofはうまく動作します。 の場合、str.eof()
は偽と思われます。 誰かが説明できますか?前もって感謝します。
ありがとう、それは私には大いに役立ちますが、返されたeof値が0である理由は分かりますか? –
@JohnDeverauxは 'eof()'がうまくいかなかった理由を説明するために答えを更新しました。 – user4581301