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
相关产品推荐
相关产品推荐

