初学C语言编写计算器无法输入+作为运算符报错求助
问题排查与修复方案
1. 报错根源解决
你贴的报错是PowerShell脚本执行报错,和你的C代码完全无关,原因是你没有编译C代码就直接把.c源文件当做脚本在PowerShell里运行了。C是编译型语言,需要先通过编译器生成可执行文件再运行:
- 如果你用的是GCC编译器,执行编译命令:
gcc 你的源代码文件名.c -o calc.exe - 编译完成后运行生成的
calc.exe即可消除该报错。
2. 运算符无法输入的修复
你用%c读取字符的格式符是正确的,问题出在输入缓冲区残留的换行符:
前面两次调用scanf("%d")读取数字时,用户输入完数字按下的回车(换行符\n)会留在输入缓冲区里,后续执行scanf("%c", &operator)时会直接读取到这个残留的换行符,不会等待用户输入运算符。
修复方法:将读取运算符的代码改为在%c前加一个空格,空格会自动跳过所有空白字符(包括换行、空格、制表符):
scanf(" %c", &operator);
3. 其他代码格式问题修复
你写的addition函数调用格式完全正确,不需要修改,其余需要调整的点:
- 多行打印的字符串不能直接在代码里换行写,需要用转义字符
\n表示换行,将运算提示的printf修改为:
printf("请选择要执行的运算:\n加法(+)\n减法(-)\n乘法(*)\n除法(/)?\n请输入对应符号: ");
- 后续补充其他运算分支时,注意除法逻辑要先判断除数是否为0,避免程序崩溃。
内容的提问来源于stack exchange,提问作者FUZION
相关产品推荐
相关产品推荐

