- getchar()-->字符数据输入
- 函数原型:int getchar(void);
- 返回类型: 整型类型。如果用一个整型变量接收,接收到的是一个字符
例如:int ch=getchar();//ch必须是整型变量来接收getchar(),此时用%c输出ch可以输出输入的字符
补充:EOF全称是End Of File(C语言标准函数库中表示文件结束符),通常在文本的最后表示资料结束。C语言中数据都是以字符的ASCII代码值来存放的。ASCII代码值得范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志,我们可以把EOF作为‘-1’理解。EOF是getchar()的结束标志
注意:键盘输入的内容或者往显示器中打印的内容,全部都是字符
- 用getchar()输入多个字符
while (getchar() != '\n')
whlie((b=getchar())!='\n')//注意:b必须是整型类型
while(scanf("%c",&a)!=E0F)//这种也是可以的
- getchar()与scanf()输入字符的区别
getchar()可以读取空格,回车等,而scanf遇到空格回车时会结束读取。所以字符串中有空格,回车等字符时一般使用getchar while循环体来输入一串字符。除此之外,当我们用scanf输入一串字符后按下回车键,scanf只会从缓冲区取走\n之前的字符,这时要想继续使用scanf,就要用getchar()来接收缓冲区的\n(如果这里不用getchar接收\n而在缓冲区里保留\n,下一次使用scanf时如果输入一个字符,则scanf会不等我们输入直接读走\n,如果用scanf输入的是字符串,则系统还是会等待我们输入的)
scanf()相比于getchar()来说,scanf可以读取各种类型的数据,包括字符,字符串,整型,浮点型,地址等,而getchar()只能读取一个字符
2.gets()-->读取字符串
- 函数原型:char*gets(char*str);
- 基本用法
gets(字符串首地址)
例如,char str[20]; gets(str);
- getsr()与scanf()输入字符的区别
gets()可以接受空格 Tab等,碰到回车键输入会结束;scanf()碰到空格 回车 Tab键都会结束。gets()输入字符串更加简洁,可以取代scanf("%s",string);
gets读入成功时返回字符串首地址,出错时返回NULL;scanf返回值为int类型,成功返回赋值的变量个数,当遇到文章结尾时返回EOF
需要注意的是,使用gets()函数时,系统会将最后输入的换行符从缓冲区取出来,并用\0代替\n,所以缓冲区不会留下字符,因此不需要使用getchar()来吸收回车符了