【发布时间】:2017-12-18 08:38:25
【问题描述】:
“该函数将写入为 unsigned char 类型转换的字符在错误时返回到 int 或 EOF”:see Putchar。 为了练习,我制作了这个程序:
#include<stdio.h>
int main(void){
for(putchar('1'); putchar('2'); putchar('3'))
putchar('4');
return 0;
}
它会导致一个无限循环,输出...432432432432432...。
我无法得到这种结果背后的原因。我希望循环一遍又一遍地打印相同的数字。我指的是 putchar('4') 的值,其中字符 '4' 应该提升为 int 52。为什么这样的提升不符合我的预期?
【问题讨论】:
-
put...char....这个名字是什么意思?那为什么不
putint()呢? -
什么?带有奇怪期望的奇怪测试。
-
put_char 写入的是 ascii 字符,而不是十进制的 ascii 代码。
-
@SouravGhosh 我同意。我正在寻找对我的嫌疑人的确认。
-
而简单搜索
putchar的规范太复杂,无法“确认您的嫌疑人”?