【发布时间】:2017-06-05 15:53:20
【问题描述】:
我今天刚刚在 C 课上进行了一次测试,我有理由相信答案可能不正确。
scanf("%d\n", &x); // Evaluate the expression for the string "54321\n"
这个想法非常简单。找到一个整数并将扫描到的数字放在与整数变量x 对应的内存位置。但是,我不相信对scanf 的调用会终止。
就我而言,对标准 I/O 的所有调用 scanf 都会在按下回车键时终止,因此无需在说明符字符串中包含换行符。事实上,这种冗余只会导致程序在搜索永远不会匹配字符串的内容时停止。
有没有人可以澄清scanf 函数的技术细节来解决这个问题?
【问题讨论】:
-
格式字符串中的尾随空格(无论是空格、制表符还是换行符)是一种交互灾难。