本教程操作环境:windows7系统、c99版本、Dell G3电脑。
putchar()是c语言中的一个函数,功能是向终端输出一个字符。
putchar()函数包含在C 标准库 <stdio.h>中。其输出可以是一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是用char定义好的一个字符型变量。
语法结构为:
int putchar(int char)
可以把参数char指定的字符(一个无符号字符)写入到标准输出stdout中。
参数:
char -- 这是要被写入的字符。该字符以其对应的 int 值进行传递。
返回值
该函数以无符号 char 强制转换为 int 的形式返回写入的字符,如果发生错误则返回 EOF。
说明
该函数将指定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。例如:“putchar('#')”输出字符“#”。
putchar()函数使用
putchar()函数难道就只能输出char型的数据么?带着这样的疑问,在环境上进行了验证,验证结果还蛮有意思,共享一下。
当我们定义一个变量a,并给a赋予0~255的值,很显然没有问题,如代码:
#include<stdio.h>void main( ) { int a = 0; //将0值赋给变量a int b = 255; //将255值赋给变量b putchar(a) ; //输出变量a的值 putchar(b) ; //输出变量b的值 putchar('\n') ; }
结果显然没有问题。
但如果现在赋值为负数呢?如代码:
#include<stdio.h>void main( ) { int a = -4646; //将-4646值赋给变量a int b = -2; //将-2值赋给变量b putchar(a) ; //输出变量a的值 putchar('\n') ; putchar(b) ; //输出变量b的值 putchar('\n') ; }
发现编译正常,也能输出结果,只是输出的结果都是空,我也不太清楚是什么原因?
还有一种情况是,赋的值大于255时,会怎样?代码如下:
#include<stdio.h>void main( ) { int a = 592; //将592值赋给变量a int b = 267; //将267值赋给变量b putchar(a) ; //输出变量a的值 putchar('\n') ; putchar(b) ; //输出变量b的值 putchar('\n') ; }
运行结果为:
从结果中可以发现,赋的值被截断成char型数据了,也就是说只取了低八位的数据。
从这些示例来说,putchar()这个函数不会检查要输出的字符的真正范围。
结论:
在使用的时候需要注意,输出变量的范围是不是一个字符的范围内,只有在一个字符的范围内才能正确输出,不然肯定会出错。
推荐:《c语言教程》
以上就是putchar()的功能是啥的详细内容,更多请关注Work网其它相关文章!