【发布时间】:2016-11-05 00:10:49
【问题描述】:
所以我最初使用 cin 让用户输入一个字符。然后,如果这个字符不是 a、b 或 c,它会继续循环并打印一条错误消息。但是,如果用户输入多个字符,则会多次打印错误消息。所以现在我正在使用 scanf 接收一个字符串并检查长度是否为 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 与 c 风格的字符串一起使用,而不是 std::string 的。
-
为什么 main 不是 void?我以前有 cin 和 char enterLetter() 方法,但是输入多个字符会循环遍历所有字符并多次打印错误消息。同样,输入“fdsa”之类的字符作为字符会在到达“a”时跳出while循环,并执行与用户键入“a”而不是“fdsa”相同的操作。我不想那样。
-
main应该有一个int类型的签名。这是语言规范的一部分。这是 C++,不是 Java。