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中,使用时需包含此头文件
getchar()和putchar()函数包含在头文件stdio.h中,使用时需包含此头文件
举些简单的例子:
#include “stdio.h”
int main(void){
char ch;
ch = getchar();
putchar(ch);
return 0;
}
- 输入一个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,并且后面没有回车