使用cin获取用户输入异常:无法输入直接返回代码界面求助
问题修复方案
你的代码存在三个关键问题,导致无法获取用户输入:
- 函数未被实际调用:
main里直接写GetUsername和Getpassword,输出的是函数的内存地址,根本没触发输入逻辑。必须通过()调用函数。 - 中文符号非法:代码里的引号“”、单引号‘’都是中文符号,C++只识别英文的""和'',这会导致编译异常或逻辑错误。
- 函数设计冗余:输入函数接收的
string参数完全没用,改成无参函数更合理。
修正后的代码如下:
#include <iostream> #include <string> // 预约时间审批项目 std::string GetUsername() { std::string Username; std::cin >> Username; return Username; } std::string GetPassword() { std::string Password; std::cin >> Password; return Password; } int main() { std::cout << "Login\n"; std::cout << "Username: "; std::string username = GetUsername(); std::cout << username << '\n'; std::cout << "Password: "; std::string password = GetPassword(); std::cout << password << '\n'; return 0; }
修正细节说明:
- 调整输入函数为无参形式,内部声明局部变量存储用户输入,避免冗余参数。
- 替换所有中文符号为英文符号,确保编译器正确解析代码。
- 显式包含
<string>头文件,符合C++标准规范(部分编译器可能间接包含,但显式引入更稳妥)。 - 拆分输入逻辑:先输出提示文本,再调用函数获取输入,最后输出结果,流程更清晰。
运行修正后的代码,程序会先等待你输入用户名,回车后再等待输入密码,完全符合预期逻辑。
内容的提问来源于stack exchange,提问作者An_phan
相关产品推荐
相关产品推荐

