You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

初学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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:06:04