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,并且后面没有回车

    

 

你可能感兴趣的:(C语言学习,C语言)