从零开始学C语言系列之第三章《getchar》

本文详细介绍了C语言中的getchar函数,用于读取单个字符并返回ASCII码值,以及与scanf函数在输入行为上的区别,着重讲解了getchar遇到EOF的情况和如何使用它们处理连续字符输入和输入结束的标志。

往期回顾

【第一章】《认识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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值