我今天参加了C语言课程的一次测试,但我有理由认为答案可能是错误的。
scanf("%d\n", &x); // Evaluate the expression for the string "54321\n"
这个想法非常简单。找到一个整数并将扫描到的数字放置在与整数变量
x
对应的内存位置上。然而,我不认为这个对 scanf
的调用会终止。就我所知,所有对标准 I/O 的
scanf
调用都会在按下回车键时终止,因此没有必要在格式字符串中包含换行符。实际上,这种冗余只会导致程序在寻找永远不会匹配的字符串时停滞不前。有没有人能够澄清
scanf
函数的技术细节以解决这个问题?