字符在C语言出现时用' '标志起来,并且字符在C语言中以ASCIL码形式存储
'a'——97二者意思相同
getchar函数:int getchar(void);
该函数读取标准输入(键盘输入),返回读取到字符的ASCIL值
如果读取过程发生错误,则返回EOF(-1)文件结束标志
getchar函数读取时,按ctrl+z可以让getchar读取到EOF结束读取
int ch =getchar();
对于getchar来说,回车也算输入字符
putchar函数:void putchar(int);
将参数的ASCIL值对应的字符打印在屏幕上
putchar(ch);可以替代printf("%s",ch);
getchar工作原理
用此现象解释getchar工作原理
首先getchar要读取键盘输入的信息,并不是直接读取,在getchar和键盘之间还有一个缓冲区
1.程序运行后getchar处于等待状态,等待键盘输入
2.键盘输入A+回车
3.缓冲区中放入A\n
4.getchar读取缓冲区的第一个字符,调用putchar输出字符A
5.再次调用getchar,此时因为缓冲区还有一个\n字符,所以getchar不会进行等待键盘输入
直接读取缓冲区的\n字符,调用putchar输出\n,效果就是换行
就是此图的现象
同理就不难理解下面这个程序的现象了
先输入ABC+回车
在输入Ctrl+回车
进阶训练
char password [20];
scanf("%s”,password);
使用此函数时,scanf也会在缓冲区等待键盘的输入,当最后输入回车时,
回车会触发scanf将前面输入的字符串取走(不会取走回车的\n),
缓冲区只剩下了\n
再调用getchar函数时由于缓冲区里面有字符,不再等待,直接取走\n
文章就到这里了,感谢支持哦