【C语法学习】4 - putchar()函数

1 函数原型

putchar():将一个字符写入到标准输出流stdout,函数原型如下:

int putchar(int character);

cstdio库描述如下:

1. Writes a character to the standard output (stdout).

2 参数

putchar()函数只有一个参数character,类型为int型:

  1. 当传递给putchar()函数的实参值在0~127之间时,转换为字符后输出;
  2. 当传递给putchar()函数的实参值在128~255之间时,在VS2019下无打印。

cstdio库描述如下:

1. The int promotion of the character to be written.
2. The value is internally converted to an unsigned char when written.

第1条的意思是:先将字符由char类型整形提升为int类型。
第2条的意思是:再将int转换为unsigned char(所以,实际传递给putchar()函数的值在0-255之间)。

3 返回值

putchar()函数的返回值类型为int型:

  1. 写入成功,返回传递给putchar()函数的实际值,范围在0~255之间;
  2. 写入失败,返回EOF。

cstdio库描述如下:

1. On success, the character written is returned.
2. If a writing error occurs, EOF is returned and the error indicator (ferror) is set.

4 示例

4.1 示例1

以ASCII码值和字符常量的形式输出单个字符,代码如下所示:

int main()
{
   //
   int x = 97;
   
   putchar(x);
   printf("\n");
   //
   char y = 'a';

   putchar(y);
   printf("\n");

   return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

4.2 示例2

读取字符串"hello world"并打印,代码如下所示:

int main()
{
   //
   char ch = 0;
   while ((ch = fgetc(stdin)) != '\n' && ch != EOF)
   {
      putchar(ch);
   }
   //
   printf("\n");
   //
   return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

4.3 示例3

参数c的值大于255时,代码如下所示:

int main()
{
   int ret = 0;
   //
   printf("putchar(97)  = ");
   ret = putchar(97);
   printf("\nreturn value = %d\n\n", ret);
   //
   printf("putchar(353) = ");
   ret = putchar(353);
   printf("\nreturn value = %d\n\n", ret);
   //
   printf("putchar(197) = ");
   ret = putchar(197);
   printf("\nreturn value = %d\n\n", ret);
   //
   printf("putchar(453) = ");
   ret = putchar(453);
   printf("\nreturn value = %d\n\n", ret);
   //
   printf("putchar(-1) = ");
   ret = putchar(-1);
   printf("\nreturn value = %d\n\n", ret);
   
   return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

代码及运行结果分析:

  1. 当参数c的值=97,97%256=97,在0~127之间,转换为对应的字符’a’后输出;
  2. 当参数c的值=353,353%256=97,在0~127之间,转换为对应的字符’a’后输出;
  3. 当参数c的值=197,197%256=197,在128~255之间,实际输出时什么都没有显示;
  4. 当参数c的值=453,453%256=197,在128~255之间,实际输出时什么都没有显示;
  5. 当参数c的值=-1,对应的无符号整形值为4,294,967,295(int类型占4个字节),模256后等于255,在128~255之间,实际输出时什么都没有显示。

该示例主要用于验证putchar()函数将传递给它的参数转换为unsigned char类型,实际使用时不会直接给putchar()函数传递数值,且是值不在0-255范围类的数值(包括负值)。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值