【发布时间】:2016-09-24 02:45:48
【问题描述】:
这是我的代码
#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 时。我研究了这个问题的答案,但没有找到任何答案来解释为什么会发生这种情况。
【问题讨论】:
-
您需要注意您正在运行的终端信息。如果您认为这不重要,请三思。
-
我没有得到这个代码的笑脸...
-
@malkat google“终端代码页”
-
@WeatherVane 谢谢!我正在努力寻找连接,但能够通过在 cmd 中键入 chcp 来发现我正在使用第 437 页。现在我明白了为什么我通过输入不同的数字得到了我得到的字符。
-
'%c' 期待单个字符,但是,
1是一个多字符整数。建议使用:printf( "%d", 1 );
标签: c terminal character-encoding printf character