C++多if else分支程序跳过动物输入环节问题排查求助
C++代码问题排查
错误原因
- 缺少用户输入读取逻辑:你在输出动物询问、定义
animal变量后,没有编写任何输入读取语句,程序直接使用animal的栈内存随机初始值执行判断,自然不会等待用户输入。 - 变量类型不匹配:
char类型仅能存储单个字符,cat/dog属于多字符字符串,必须改用std::string类型存储动物名称。 - 语法使用错误:C++中单引号仅可包裹单个字符,字符串必须使用双引号包裹,
'cat'属于非法的多字符字符常量,无法正常匹配字符串内容。
修复后的完整代码
#include <iostream> #include <string> using namespace std; int main() { // 定义元音字母变量 char letter; // 请求输入小写元音 cout << "Give me a lowercase vowel - "; cin >> letter; // 元音校验 if (letter=='a' || letter=='e' || letter=='i' || letter=='o' || letter=='u' || letter=='y' ) { cout << "Thank you! " << endl; } else if (letter=='A' || letter=='E' || letter=='I' || letter=='O' || letter=='U' || letter=='Y' ) { cout << "Your stupid .... I said lowercase vowel. " << endl; } else { cout << "Error Not A Vowel " << endl; } // 询问最喜欢的动物 cout << "what is your favorite animal? " << endl; // 定义字符串类型存储动物名称 string animal; // 新增输入读取语句 cin >> animal; // 动物判断逻辑 if (animal == "cat" || animal == "Cat" || animal == "dog" || animal == "Dog" ) { cout << " Omg I love that tooo!!! " ; } else { cout << "Oh.. Thats your favorite animal "; } // 后续大写字母输入逻辑可在此处补充 // 程序结束 cout << endl << endl; system("pause"); return 0; }
内容的提问来源于stack exchange,提问作者ONION
相关产品推荐
相关产品推荐

