C程序打印奇怪的字符

时间:2013-10-23 16:18:26

标签: c printing char

当我运行此程序时,它会在终端中打印一个奇怪的字符。有人能告诉我那是什么吗?

int main(){
    char x=1;
    printf("%c\n",x);
    return 0;
}

4 个答案:

答案 0 :(得分:3)

这是因为您要为x分配1(字符的ASCII值)。将'1'分配给x。它将提供输出1

char x = '1'; 
printf("%c\n",x);

答案 1 :(得分:2)

来自ASCII table的打印字符1  (对您的平台做出合理的假设,您不在EBCDIC平台上或其他什么)

答案 2 :(得分:0)

C中的字符通常应使用字符分配,而不是使用ASCII编码。例如:

    char x = 'A';
    printf("%c\n", x);

将在终端上打印字符“A”。通过给字符指定ASCII索引1,您可以为其指定START OF HEADING字符(SOH)。如果您正在寻找'A'或'1',那将是:

   char x = 65; // x = 'A' 
   char y = '1'; // y = '1' 

但就像我说的那样,这是非常尴尬的,需要ASCII记忆来阅读,所以分配数字是非常糟糕的做法。

您可以在http://www.asciitable.com/

找到ASCII表

答案 3 :(得分:0)

这取决于你想要的输出。如果你认为你的代码给出了一些奇怪的输出,你当然希望'1'作为输出。为此,您应该替换您的陈述

    char x = 1;

    char x = '1';

多数民众赞成!你的问题就解决了!