我刚开始学习C语言,但scanf函数出了问题。每次在控制台输入一个数字后,它会直接打印在输入的下方。虽然程序仍能正常运行,但这有点烦人。(我正在使用JetBrains的CLion)
int main()
{
int x;
printf("Number: ");
scanf("%d", &x);
printf("Your number is %d!", x);
}
这是输出结果:
数字:15
15
你的数字是15!
进程以退出代码0结束
这是clion的一个问题(为什么CLion会将标准输入的内容打印回来?)。目前还未得到解决。该问题存在于C和C++中。 这个bug已经存在了四年之久。如果您没有特别的原因,我强烈建议您更改编译器。
scanf
总是打印输入的数字” - 不,scanf
不会输出任何内容。我不熟悉JetBrains,但当您输入数字并按“Enter”时,您的stdin
应包含“15\n”,scanf
读取并将“15”存储在x
中,并保留stdin
中未读取的\n
。很难看出这会导致问题。 - David C. Rankin