|
|
发表于 2026-9-9 21:30:24
|
显示全部楼层
原因分析
视频里能正常输入,是因为程序在终端里跑;你现在很可能直接在 VSCode 的“输出”面板里运行了。这个面板只能显示输出,不能把你键盘输入的内容传给 scanf,所以程序就卡在“等输入”这一步,后面的 if 语句自然执行不完。
关键:scanf 需要“终端”支持,不能只看“输出”面板。
推荐写法示范
为了确保“您老贵庚啊:”先显示出来,再等待输入,建议加一句 fflush(stdout):
- #include <stdio.h>
- int main()
- {
- int age;
- printf("您老贵庚啊:");
- fflush(stdout); // 强制把提示语立刻显示出来
- scanf("%d", &age);
- if (age >= 60)
- {
- printf("老当益壮!\n");
- }
- else if (age >= 18)
- {
- printf("成年人了\n");
- }
- else
- {
- printf("小朋友好\n");
- }
- return 0;
- }
复制代码
解决办法一:在 VSCode 的终端里手动编译运行
- 打开 VSCode,按 Ctrl+` 调出“终端”。
- 在终端里先切换到代码所在目录,例如:cd 你的代码目录
- 输入编译命令:gcc 文件名.c -o 文件名
- 再输入执行命令。Windows 下输:文件名.exe;Mac/Linux 下输:./文件名
然后程序就会在终端里等待你输入,后面的 if 也就能继续执行了。
解决办法二:设置 Code Runner 在“终端”里运行
如果你用的是 Code Runner 插件,可以这样设置:
- 按 Ctrl+, 打开设置。
- 搜索:code-runner.runInTerminal
- 把它打勾。
- 重新运行“Run Code”。
打勾后,程序就会在“终端”中运行,不再跑到“输出”面板,scanf 也就能正常接收你输入的数字了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|