【C语言小知识】getchar与putchar

简介: 【C语言小知识】getchar与putchar

getchar介绍

  • int getchar ( void );
  • 从流中获取字符
  • 返回标准输入的下一个字符
  • 它等效于使用 stdin 作为参数调用 getc。

getchar()函数不带有任何参数,它从输入队列中返回下一个字符。

ch = getchar();

这条语句读取下一个字符输入,并把该字符的值赋给变量ch。

scanf("%c", &ch);

该语句与上面的语句效果相同。

putchar介绍

  • int putchar ( int character );
  • 将字符写入stdout
  • 将一个字符写入标准输出
  • 它等效于使用 stdout 作为参数调用 putc

putchar()函数打印它的参数。

putchar(ch);

此语句把之前赋给ch的值作为字符打印出来。

printf("%c", ch);

该语句与上面的语句效果相同。

总结

  • 由于getchar()与putchar()俩个函数只处理字符,所有较scanf()与printf()函数更快,更加简洁。
  • 同时getchar()与putchar()不需要转换说明,因为它们只处理字符。
  • 这俩个函数通常定义在stdio.h头文件中,它们通常是预处理宏,而不是真正的函数。
#include<stdio.h>
int main()
{
  char ch;
  ch = getchar();
  while (ch != '\n')
  {
    if (ch == ' ')
    {
      putchar(ch);
    }
    else
    {
      putchar(ch + 1);
    }
    ch = getchar();
  }
  return 0;
}

观察这段代码,与scanf()进行比较,使用getchar()时每次迭代的末尾有一条“读取语句”。可以将读取和测试合并为一个表达式:

#include<stdio.h>
int main()
{
  char ch;
  while ((ch = getchar()) != '\n')
  {
    if (ch == ' ')
    {
      putchar(ch);
    }
    else
    {
      putchar(ch + 1);
    }
  }
  return 0;
}

这里可以很好的体现C特有的编程风格——把俩个行为合并成一个表达式。

以上执行的行为是赋值给ch和把ch的值与换行符作比较。

表达式ch=getchar()俩侧的圆括号让其称为!=运算符的左值,读取ch的值后,测试条件相当于是ch!=‘\n’。

【注意】ch=getchar()俩侧的圆括号一定需要存在,因为!=运算符的优先级比=高。

putchar(ch + 1);

此语句可以很好的演示字符实际上是作为整数存储的,表达式ch+1中的ch被转换成int类型,然后int类型的计算结果被传递给接受一个int类型参数的putchar().

相关文章
|
C语言 数据安全/隐私保护
【初阶C语言】学会使用库函数getchar和putchar
【初阶C语言】学会使用库函数getchar和putchar getchar函数 该函数的作用是接收一个字符,然后把该字符转化对应的ASCII值
1896 0
|
存储 C语言
爱上C语言:scanf、gets以及getchar输入字符串你真的懂了吗
爱上C语言:scanf、gets以及getchar输入字符串你真的懂了吗
408 1
|
编译器 C语言 C++
【C语言】分支和循环 ---- if、switch、while、for、goto语句, 理解getchar和putchar函数
【C语言】分支和循环 ---- if、switch、while、for、goto语句, 理解getchar和putchar函数
281 0
|
存储 编译器 C语言
C语言程序设计——字符输入函数getchar()
C语言程序设计——字符输入函数getchar()
|
存储 编译器 C语言
C语言程序设计——字符输出函数putchar()
C语言程序设计——字符输出函数putchar()
|
C语言
C语言:多组输入和getchar函数(2)
C语言:多组输入和getchar函数
|
C语言
C语言:多组输入和getchar函数(1)
C语言:多组输入和getchar函数
|
缓存 Unix Linux
【C语言】详解getchar和putchar的使用方法
我们知道scanf函数可以从键盘输入信息,而printf则可以输出信息,同样地,getchar和putchar也有同样的功能。下面我来给大家介绍putchar和getchar的使用方法。
1556 0
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
801 23
|
6月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
1336 0