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

VS Code编写C语言时scanf内字符串不在命令行显示如何解决

C语言scanf提示不显示问题修复方案

核心原因

scanf函数的第一个参数为输入格式匹配规则,没有输出提示文本的作用。你在格式串中写入的Enter会被当成输入匹配规则:要求用户必须先输入Enter四个字符,再输入整数才能匹配成功,既不会打印提示,还会导致正常输入的数字匹配失败。

修复步骤

  • 将提示文本单独通过printf输出,不要写入scanf的格式串中
  • 仅在scanf的第一个参数中保留输入匹配需要的格式符%i即可

修正后完整代码

#include<stdio.h> // 头文件

// 标准写法建议用int main,void main属于非标准写法,部分编译器可能不兼容
int main()
{
    printf("\n   Please select the number of Players:\n");
    printf("   1. Single Player - V/S AI (in development)\n");
    printf("   2. Two Player Game - V/S Friend \n");
    int no_of_players;
    // 单独打印输入提示
    printf("Enter ");
    // scanf仅保留输入格式符
    scanf("%i",&no_of_players);
    printf("\n You selected, %i", no_of_players);
    return 0;
}

可选优化

如果遇到提示文本打印后没有立刻显示的情况,可在printf之后添加fflush(stdout);强制刷新输出缓冲区,避免缓冲区未自动刷新导致的提示延迟显示。

你原本的编译指令不需要修改,直接编译运行修正后的代码即可正常展示提示、接收输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:27:04