C语言中的getchar()与putchar()详解

原文链接

getchar() 用于读取用户从键盘输入的单个字符,它有一个整型的返回值,当发生读取错误的时候,返回整型值-1,当读取正确的时候,它会返回用户从键盘输的第一个字符的ASCII码,当程序调用getchar时.运行程序时就等着用户从按键输入,用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中),当用户键入回车之后,getchar才开始从输入流中每次读入一个字符,输入的字符不只一个的时候,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完之后,才等待用户按键,getchar函数输入数字也按字符处理,单个的getchar函数输入多于一个字符时,只接收第一个字符
    putchar()向终端输出一个字符。其格式为putchar(ch),其中ch可以是被单引号(英文状态下)引起来的一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127)(超过127就不是ASCII码了),也可以是事先用char定义好的一个字符型变量当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符),当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符;当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。当整型变量ch超出8位变量的范围时,ch则会变强制转化为8位变量(即取其低八位传过去输出),当为负数的时候,由于计算机存储负数是用补码表示的,所以传过去的二进制补码也被当做正数处理,也是取其低八位
    getchar()和putchar()函数包含在头文件stdio.h中,使用时需包含此头文件

举些简单的例子:

#include “stdio.h”
 
int main(void){
    char ch;
 
    ch = getchar();
    putchar(ch);
 
    return 0;
}

  1.  输入一个a,然后按下回车,输出a  

                                        
                                                  
    2.   直接按下回车,然后输出也是回车空了一行,说明回车是被读取并放在键盘缓冲区中的

#include “stdio.h”
 
int main(void){
    char ch;
 
    ch = getchar();
    putchar(ch);
    ch = getchar();
    putchar(ch);
    putchar(ch);
 
    return 0;
}

    1.  输入为a时,输出会出现a,并且加上两个回车,注意是有两个回车的,在第二个getchar()的时候已经将ch的值变为回车字符了,所以后面输出两个回车的,putchar()函数本身是最后不自动加回车符的

 2.  当第一次输入为空格时,那么此时键盘缓冲区只有回车符,并且结束输入,然后putchar函数输出回车符,也就是空一行,然后继续等待用户从终端输入字符,然后输入1,按下回车,那么此时ch的值就是字符1(注意这里输入的数字统统表示字符,输入123,那就是‘1’‘2’‘3’3个字符加上回车符),此时输出两个连续的1,并且后面没有回车

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值