gets、scanf和getchar之间的区别

时间:2021-09-28 19:56:38

gets

gets、scanf和getchar之间的区别

1、 gets函数读取数据时,接受的数据包括数据和回车符。即:读取数据后输入流没有输入 操作动作。

2、 scanf函数读取数据时,接受的数据只有数据,不包括回车符。即:读取数据后输入流 还存在回车符操作动作。

3、 getchar函数读取一个字符数据时,接受的数据只有一个字符,不包括回车符。即: 读取一个字符数据后就默认输入数据结束。读取数据后输入流还存在回车符操作动作。

gets(s)函数与scanf("%s:",&s)/* scanf("%s",s)*/相似,但不完全相同,使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。

void main() { char str1[5]; gets(str1); printf("%s\n",str1); }

getch与getchar       getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).       getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.

getchar(),这个函数与前两上类似,功能也相近,都是输入一个字符,返回值同样是输入字符的ASCII码,但不同的是,此函数在输入后立即从控制台取字符,不以回车为结束(带回显)