往期回顾
【第一章】《认识C语言》
【第二章】C语言概述及基本知识1
【第二章】C语言概述及基本知识2
【第三章】字符串和格式化输入/ 输出
【第三章】 printf
【第三章】 scanf
【第三章】 putchar
概念
getchar()----读取单个字符的函数
注意:此时是读取单个字符
int getchar (void)
1、getchar其实返回的是字符的ASCII码值(整数)。
2、getchar在读取结束或者失败的时候,会返回EOF。
注意:EOF意思是end of file,本质上是-1.
连续单个字符串
#include <stdio.h>
#include <string.h>
int main()
{
int ch = 0; //因为 getchar() 返回类型为 int
while ((ch = getchar()) != EOF) // 连续输入单个字符
{
printf("%c",ch); // 输出一个字符
//putchar(ch); // 此时 printf("%c",ch) 与 putchar(ch) 输出结果一样
}
return 0;
}
解析:getchar先读取一个字符放到ch里面去,如果这个字符不等于EOF,就进入循环,打印这个字符。当getchar读到文件末尾或者结束时,它会返回一个EOF,此时结束循环。
注意: printf(“%c”,ch) 与 putchar(ch) 输出结果一样
注意:如果想要结束连续输入 输入:ctrl+z 即可

浅析getchar与scanf的区别
1.getchar 作用是从键盘读入字符,每次只读取一个,一次读入。只有当遇到回车键时才会结束读取。且getchar有类型,为int型,所以getchar的输入一般为int类型。
2.scanf的作用是输入单个字符。但是当scanf遇到空格时就结束读取,不能输入\n。尽管后面还有其他字符。如果要输入长字符,需要用到%s这个格式控制符。
在用函数scanf()输入数值型数据时遇到以下几种情况都认为数据输入结束:
1、遇到空格符、回车符、制表符(tab);
2、达到输入域宽;
3、遇到非法字符输入。
如以下例子:
如输入a的值为k,则当回车时输出字符为k。
#include<stdio.h>
int main ()
{
char a;
scanf("%c",&a);
printf("%c",a);
return 0;
}
若输入abc分别为kg(空格)h,则输出的结果为kg(空格)。
#include<stdio.h>
int main()
{
char a,b,c;
scanf("%c%c%c",&a&b&c);
printf("%c%c%c",a,b,c);
return 0;
}
对于getchar来说
#include<stdio.h>
int main()
{
char x;
while(x!='h')
{
x=getchar();
}
putchar(x);
return 0;
}
当输入gkh时,结果输出h。
本文详细介绍了C语言中的getchar函数,用于读取单个字符并返回ASCII码值,以及与scanf函数在输入行为上的区别,着重讲解了getchar遇到EOF的情况和如何使用它们处理连续字符输入和输入结束的标志。
5万+

被折叠的 条评论
为什么被折叠?



