Qt Creator中scanf等输入函数无法终止问题求助(VS Code可正常运行)
Qt Creator中C语言输入函数无法终止等待的解决办法
1. 切换终端类型
Qt Creator默认内部终端在部分环境下存在输入缓冲异常:
- 打开
工具→选项→环境→终端 - 将终端改为系统原生终端(Linux可选
gnome-terminal/konsole,Windows选cmd.exe/PowerShell) - 重启Qt Creator后重新运行程序
2. 启用终端运行选项
- 在项目视图选中当前项目,切换到
运行标签页 - 勾选
在终端中运行(部分版本显示为Run in terminal) - 重新编译运行程序
3. 禁用标准IO缓冲
在代码中手动关闭输入输出缓冲,确保输入实时被读取:
#include <stdio.h> #include <stdlib.h> int main() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); char c; printf("enter value : "); scanf(" %c", &c); printf("%c", c); return 0; }
4. 验证编译套件配置
- 确认项目使用的是正确的gcc版本,未混用clang等其他编译器
- 检查项目构建配置的
CFLAGS参数,确保无影响输入输出的特殊设置
5. 清理缓存后重构
- 点击
构建→清理项目 - 再执行
构建→构建项目 - 完成后重新运行程序
内容的提问来源于stack exchange,提问作者Nicolas Zanforlini
相关产品推荐
相关产品推荐

