C语言中getchar和putchar

前言

本篇文章介绍getchar和putchar

写在前面

输入缓冲:为输入设备预留的一块内存缓冲区,输入缓冲分为行缓冲和全部缓冲区,我们对于键盘的输入,一般使用行缓冲,意思就是按下回车键,缓冲数据就会全部进入输入流stdin中,然后我们程序才会处理数据

:我们平时的键盘输入,文件读取,文件写入,控制台输出,其实都是在操作流,你可以简单的把流理解成一段数据的指针。键盘的输入流是stdin,控制台打印的输出流是stdout。我们的getchar和putchar其实就是在操作这两个流。 我们输入字符点击回车后,缓冲区会包含回车键,并且会一并发送给输入流

文件重定向:我们在运行程序的时候,可以通过程序名称 <filename来把应用程序的stdin流和文件filename关联起来,这样如果你程序中使用getchar从输入流中获取字符的话就相当于你在读取这个文件。我们也可以用程序名称 >filename把应用程序的stdout流和文件filename关联起来,这样当你通过比如putchar输出字符的话相当于你在写文件。

getchar

顾名思义,getchar函数和scanf不同,他会一个字符一个字符的从输入流中读取数据,每次都读取一个字符。看下面的例子:

#include <stdio.h>
int main(int argv, char** argc)
{
    char a;
    while((a = getchar())!='n')
    {
        putchar(a);
    }
    return 0;
}

输入

sadaa asdad

运行结果

sadaa asdad
光标在这里

注意,运行结果以后光标是停留在新一行的。
输入

dadas an

运行结果

dadas a光标在这里

所以我们得出下面的结论:

  • getchar能获取所有的字符,包括空格,制表符,换行符,scanf方法会跳过空格,制表符,换行符
  • getchar把输入流中的所有数据全部当作字符合集处理,而scanf会根据转换说明符识别不同类型的数据

putchar

把一个字符写入输出流中,可以写入空格,制表符,换行符
puchar返回值是一个整数,返回的是字符的ascii数值表示

#include <stdio.h>
int main(int argv, char** argc)
{
    char a='a';
    printf("\n%d\n",putchar(a));
    return 0;
}

输出结果为

a
97

相关推荐

  1. C语言getcharputchar

    2023-12-06 02:20:02       51 阅读
  2. C语言getchar函数

    2023-12-06 02:20:02       54 阅读
  3. 有关while((c=getchar())!=\n)while((ch=getchar()!=EOF))

    2023-12-06 02:20:02       27 阅读
  4. C语言 getchar()原理及易错点解析

    2023-12-06 02:20:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 02:20:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 02:20:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 02:20:02       82 阅读
  4. Python语言-面向对象

    2023-12-06 02:20:02       91 阅读

热门阅读

  1. js执行异常处理 箭头函数 正则表达式

    2023-12-06 02:20:02       49 阅读
  2. ubuntu 更换国内镜像

    2023-12-06 02:20:02       58 阅读
  3. 前端面试灵魂提问-计网(2)

    2023-12-06 02:20:02       41 阅读
  4. OpenCV-Python:模块功能介绍

    2023-12-06 02:20:02       59 阅读
  5. 七牛云1024创建节-赛后有感

    2023-12-06 02:20:02       63 阅读
  6. Oracle常见内置程序包的使用Package

    2023-12-06 02:20:02       45 阅读
  7. mysql常见配置文件参数

    2023-12-06 02:20:02       53 阅读
  8. Go 模块系统最小版本选择法 MVS 详解

    2023-12-06 02:20:02       52 阅读