Jas*_*tos 5 c formatting scanf
我正在通过教科书为编程学校做准备.有一个我不明白的特殊问题,教科书没有给出答案.
PS:我已经在网上学过一些C++/C#,但是从来没有通过正确教授的编程课程,所以我在努力学习一些概念.
问:对于以下每对scanf格式字符串,请指明两个字符串是否相同.如果不是,请说明如何区分它们.
A)
"%d"与" %d"
B)"%d-%d-%d"对比"%d -%d -%d"
C)"%f"与"%f "
D)"%f,%f"对比"%f, %f"
首先,我甚至不明白问题是什么.教科书的含义是2个字符串是否"等价"?
如果他们是,有人可以解释差异,并可能告诉我如何区分他们?
让我们A先尝试一下:"%d"与 相比" %d",它们是 的等效格式字符串scanf()。
" "将执行以下操作。它永远不会失败。
\n1) 扫描并丢弃(跳过)可选的空白。
\n2) 读取非空白或文件结尾后,如果不是(EOF),则将读取的最后一个字符放回stdin。
"%d"其本身将尝试 3 件事(可能会失败)
\n1) 扫描并丢弃(跳过)可选空白。
\n2) 扫描并转换表示十进制整数的数字文本。
\n3) 读取非数字文本或文件结尾后,如果不是(EOF),则将读取的最后一个字符放回到stdin.
" %d"执行上述两项操作。这与仅使用 执行第二项的结果相同"%d"。
带 *scanf()说明符注意:
\n\n\n输入空白字符(由
\nisspace函数指定)将被跳过,除非规范包含[、c或n说明符。C11 \xc2\xa77.21.6.2 8
B、C、D差异?
将鼠标悬停在提示 1 上:
\n\n\n\n\n除了上面提到的 3 之外,说明符之前的
\n" "A是与没有它时等效的 scanf() 格式。scanf()
将鼠标悬停在提示 2 上:
\n\n\n\n\n3 个等效项中只有 1 个。
\n
将鼠标悬停在提示 3 上:
\n\n\n\n\n考虑输入:
\n
\n "123 -456-789"
\n "123.456 x" 下一个要读取的字符是什么?
B)"%d-%d-%d"对比"%d -%d -%d"
\nC)"%f"对比"%f "
\nD)"%f,%f"对比"%f, %f"
回答:
\n\n\n\n噢,你真的想得到答案吗?
\n