私はもともとユーザーが文字を入力させるためにcinを使用していました。次に、この文字がa、b、またはcでなければ、ループし続けてエラーメッセージを出力します。ただし、ユーザーが複数の文字を入力すると、エラーメッセージが複数回印刷されます。だから私は文字列を取り、長さが1であるかどうかを調べるためにscanfを使っています。これはまっすぐで、まったく動作しません。文字列のC++入力文字またはチェック長は1ですか?
string enterLetter() {
string n;
scanf("%s", &n);
return n;
}
void main() {
string ch = "";
cout << "Type a, b, or c: ";
while (ch != "a" && ch != "b" && ch != "c"){
while (ch.length() != 1) {
ch = enterLetter();
cout << ch.length();
}
ch = tolower((char)ch.c_str());
cout << "\n" << ch;
}
なぜあなたは、このための文字列を使用していますか? 'char'を使います。 –
また、なぜあなたの主な方法は 'void'型ですか? –
scanfはstd :: stringのではなく、cスタイルの文字列と組み合わせて使用します。 –