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

C程序调用scanf后无法执行printf输出问题求助

问题分析与解决

你的程序无法正常回显输入的核心问题出在scanf的格式字符串上:

  • scanf("%s\n", input)里的\n完全多余。scanf处理%s时会自动跳过开头的空白字符(包括换行、空格),而格式字符串里的\n会让它持续等待输入,直到遇到非空白字符或EOF才会结束读取,导致程序卡在输入阶段,无法执行后续的printf。

另外补充一个新手易忽略的细节:printf("$")之后,标准输出默认是行缓冲模式,没有换行符的话,提示符可能不会立即显示在终端上,建议加上fflush(stdout)强制刷新输出缓冲区。

修正后的代码:

#include <stdio.h>

int main() {
    char input[50];
    printf("$");
    fflush(stdout); // 强制刷新缓冲区,确保提示符立即显示
    scanf("%s", input);
    printf("\n %s", input);
    return 0;
}

编译运行后,输入内容就能正常回显了。

内容的提问来源于stack exchange,提问作者anonymous

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:05