getch 与getchar
getchar:
当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区内,直到用户按回车键为止(回车键也保存在缓冲区内)当用户键入回车后,getchar才开始从stdio流中每次读入一个字符getchar函数的返回值是用户输入的第一个字符的ASCII码,若文件结尾(End-Of-File)则返回-1(EOF),且将用户输入的字符回显到屏幕如果用户在按回车键之前不止输入了一个字符,其他字符会保存在键盘缓冲区内,等待后续getchar调用也就是说,后续的getchar程序调用不会等待用户按键,而是直接读取缓冲区内的字符,直到缓冲区内的字符读完,才会等待用户按键
getch:
接受任意一个键的输入,不用按回车就返回,且该函数的输入不会自动输出到屏幕上,需要用putchar()输出函数显示getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上 getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行
头文件:
getchar() 用#include<stdio.h>
getch() 用#include<conio.h>
gets与scanf
二者都是从终端读入字符串
功能为:
1、 gets功能为读入一行,并将换行符转换为字符串结束符
2、 scanf("%s",s);读入时,遇到空白字符,包括空格,制表符,换行符时均会停止输入
从功能上不同之处:
1、 终止条件不同
gets只有遇到\n时才会结束输入,而scanf遇到空格或制表符时,也会结束输入
比如输入"test string\n"用gets得到的字符串为"test string", 用scanf得到的是"test"。
2、 终止后,对终止字符处理不同
比如输入为"test\nabc"执行gets后,\n不会留在缓冲区中,即这时调用getchar得到的字符是’a’,执行scanf后,\n会留在缓冲区,这时调用getchar得到的字符是’\n’
来源:CSDN
作者:Knock man
链接:https://blog.csdn.net/Anterior_condyle/article/details/104373168