平淡最真 发表于 2018-3-20 21:05:26

关于putchar的输出问题

请教:
# include <stdio.h>

int main(void)
{
        char c;
        c = 'A';
        putchar(c);
        putchar('\n');
        putchar('65');
}

为什么这里putchar输出的是5

# include <stdio.h>

int main(void)
{
        int c;
        c = getchar();
        putchar(c);
}
而这里输入65,putchar则输出的是6啊

Zmynx_2017 发表于 2018-3-20 21:10:09

你这个是没有理解putchar(),putchar函数的基本格式为:putchar(c)。其中c可以是被单引号(英文状态下)引起来的一个字符,可

以是介于0~127之间的一个十进制整型数(包含0和127),也可以是事先用char定义好的一个字符型变量。

(1)当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符)

(2)当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符;

(3)当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。

平淡最真 发表于 2018-3-20 21:50:38

Zmynx_2017 发表于 2018-3-20 21:10
你这个是没有理解putchar(),putchar函数的基本格式为:putchar(c)。其中c可以是被单引号(英文状态下)引 ...

您好首先谢谢您回答我的问题
但是我的问题是第一个程序中 putchar('65'); 为什么会输出一个5?

Zmynx_2017 发表于 2018-3-20 22:33:05

平淡最真 发表于 2018-3-20 21:50
您好首先谢谢您回答我的问题
但是我的问题是第一个程序中 putchar('65'); 为什么会输出一个5?

首先,我不知道你的编译器使用的是什么,因为我用的dev C++,

然后编译就根本通不过,你认真阅读以下我刚才回答的部分,你的putchar('65')

这个相当于是两个字符了,dev c++编译过不了,如果编译过了,那可能的解释就是

因为你最后输入的字符相当于是5,所以输出的是字符5而不是数字5.

不知道你明白了吗?

平淡最真 发表于 2018-3-21 07:28:55

Zmynx_2017 发表于 2018-3-20 22:33
首先,我不知道你的编译器使用的是什么,因为我用的dev C++,

然后编译就根本通不过,你认真阅读以下 ...

明白了 谢谢 {:5_109:}
页: [1]
查看完整版本: 关于putchar的输出问题