|
|
1
6
与PL22.11(ANSI“C”)副总裁Fred J.Tydeman在comp.std.c上的沟通说明了这一点:
这使“0x”成为匹配输入序列的前缀的最长序列。(甚至)
这使得
这使得“0x”无法匹配,即
定义
也就是说
|
|
|
2
3
我不认为解析可以产生不同的结果。方格图案的参考只是指出
|
|
|
3
3
根据C99规范,
所以如果
你的预期结果是什么? sample code 不过,应该有点不清楚:
对于字符串
mingwgcccc4.4.0不同意,并且无法同时解析字符串
我认为对标准的这种解释是错误的:期望形式的子序列应该总是产生一个有效的整数值(如果超出范围,则
cygwin gcc 3.4.4(据我所知,它使用newlib)也不会解析文本if
注意,我对标准的解释容易引起你的初始问题,即标准只保证能够
我不太确定
|
|
|
4
1
要总结分析数字时应根据标准执行的操作:
这有点难看,但这是要求
一些库实现人员选择了不同的行为。在我看来
|
|
|
5
0
我不确定我是否理解这个问题,但有一点scanf()应该处理eof。scanf()和strtol()是不同种类的野兽。也许你应该比较strtol()和sscanf()? |
|
|
6
0
我不确定实现scanf()如何与ungetc()相关。scanf()可以使用流缓冲区中的所有字节。ungetc()只是将一个字节推到缓冲区的末尾,偏移量也会改变。
如果输入为“100”,则输出为“100,9”。我不知道scanf()和ungetc()会如何相互干扰。对不起,如果我加了一个幼稚的评论。 |
|
|
7
0
输入到 SCAN() 功能以及 斯特罗() 函数,在 秒。7.20.1.4P7 表示: 如果主题序列为空或没有预期的格式,则不执行转换;如果endptr不是空指针,则nptr的值存储在endptr指向的对象中。 .另外,您必须考虑解析那些根据规则定义的令牌的规则 第6.4.4常数 ,指向的规则 秒。7.20.1.4P5 . 其他行为,如 埃尔诺 值,应该是特定于实现的。例如,在我的freebsd盒子里 埃瓦纳尔 和 厄兰格 值和在Linux下相同,其中标准引用的 厄兰格 ErNO值。 |
|
|
8
0
重写问题后回答过时。 不过,评论中有一些有趣的链接。
在测试了转换说明符和输入变量的所有组合之后,我可以说这两个函数族是正确的 不要给出相同的结果 . (至少在glibc,这是我可以测试的。) 当满足以下三种情况时,就会出现差异:
示例代码:
输出:
这让我困惑。明显地
所以…一炭
对, 结果不同 . 尽管如此,我还是无法正确地解释…: |
|
|
Oded S · 带有运算符重载函数的c++17求值顺序 8 年前 |
|
|
Menachem · 如何在解码Base64字符串时处理错误 8 年前 |
|
|
EFanZh · 有符号整数和无符号整数之间的转换 10 年前 |
|
|
nickcoxdotme · 关注点的角度和语义标记/分离 12 年前 |