scanf总是打印输入的数字

3

我刚开始学习C语言,但scanf函数出了问题。每次在控制台输入一个数字后,它会直接打印在输入的下方。虽然程序仍能正常运行,但这有点烦人。(我正在使用JetBrains的CLion)

int main()
{
   int x;
   printf("Number: ");
   scanf("%d", &x);
   printf("Your number is %d!", x);
}

这是输出结果: 数字:15 15 你的数字是15! 进程以退出代码0结束

1
代码本身并不引起这种行为。你在使用什么环境? - Gnqz
我正在使用JetBrains的CLion。 - D. Leon
1
scanf总是打印输入的数字” - 不,scanf不会输出任何内容。我不熟悉JetBrains,但当您输入数字并按“Enter”时,您的stdin应包含“15\n”,scanf读取并将“15”存储在x中,并保留stdin中未读取的\n。很难看出这会导致问题。 - David C. Rankin
1
似乎是CLion本身的一个bug:https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FCPP-2580 - mangusta
我使用Visual Studio 2017 C++14尝试了这段代码,但是我没有像你一样收到相同的响应,一切都按照预期工作。因此,scanf不会打印任何内容。请更换您的编译器。 - Cagri Candan
1个回答

3

谢谢,我换了编译器,现在一切都正常了。 - D. Leon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接