这是我的代码
#include <stdio.h>
int x,y;
int main( void )
{
for ( x = 0; x < 10; x++, printf( "\n" ) )
for ( y = 0; y < 10; y++ )
printf( "%c", 1 );
return 0;
}
它返回笑脸。我到处搜索笑脸代码或 1 代码,但我没有设法找到任何链接或任何解释,为什么 1 的 char 值返回笑脸,而 1 的 ascii 代码是 SOH。我研究了这个问题的答案,但没有找到任何答案来解释为什么会发生这种情况。
最佳答案
不同终端的输出不同。例如,在我的 OS X 默认终端上,没有字符输出。
在您的情况下,☺
可能是由于 some historical reasons 输出的.简而言之,这是因为将字节0x01
映射到U+263A
的代码页437是MS-DOS的字符集。
关于c - 为什么 printf( "%c", 1) 返回笑脸而不是 1 的编码字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37455047/