getchar和putchar函数,gets和puts函数——C语言初阶

一.getcharputchar函数基本概念

    getchar和putchar是两个标准C库函数,用于C编程中的输入和输出操作。它们是简单且常用的函数,用于逐个处理字符两个函数的头文件都是:

    1.getchar函数

(1)返回值:

int类型返回所读取的字符ASCII值,如果发生错误或达到输入的末尾(例如从文件中读取时),getchar特殊返回值EDF(End-Of-File),通常定义为-1.(通过这里可以看出getchar的返回类型必须要是int型才能匹配此处的-1)

(2)用法:

在调用getchar函数时,它会等待用户在终端输入一个字符。一旦用户输入一个字符,并按下回车键,getchar函数会读取该字符并返回其ASCII码,如果读取失败或到达文件末尾(EOF),则返回特殊值EOF(通常表示为-1)

getchar和putchar函数,gets和puts函数——C语言初阶_第1张图片

.

    2.putchar函数

(1)将一个字符输出到标准输出(通常是控制台)

(2)用法:

可以使用putchar在控制台(屏幕)上显示字符(仅一个字符)

getchar和putchar函数,gets和puts函数——C语言初阶_第2张图片

.

    3.实例:

要求输入一串密码后,再次输入一个字符‘Y’或‘N’来确认密码的输入,若输入‘Y’则确认成功,若输入‘N’则确认失败

getchar和putchar函数,gets和puts函数——C语言初阶_第3张图片

(上下比较,加入了while循环来清空缓冲区域)

getchar和putchar函数,gets和puts函数——C语言初阶_第4张图片

(1)使用此函数时,scanf也会在缓存区等待键盘的输入,当最后输入回车时,会触发前面输入的字符串取走(不会取走\n

(2)scanf读取字符串时遇到空格便不再继续读取,所以当输入密码换了一种形式,加了空格和其他字符时

(3)会在缓冲区中留下其他字符以及\n,可通过循环来清空缓存区

(4)再调用getchar函数时由于缓冲区里面有字符,不再等待直接取走\n

(5)getchar()-字符输入函数,没有参数,从输入缓冲区里面读取一个字符-【一次只能读取一个字符】

.

    4.实例:这个代码的作用是:打印数字字符,跳过其他字符

(上下两个代码表达同一个意思)

getchar和putchar函数,gets和puts函数——C语言初阶_第5张图片

(还需要勤加练习,深入理解)

.

.

.

二.getsputs函数基本概念:

    1.gets函数

(1)gets()函数其形式为:get(字符数组)——输入字符串的函数

(2)gets()这个函数只有一个参数,参数类型为char*型,即str可以是一个字符指针变量名,也可以是一个字符组名

(3)功能:是从输入缓冲区中读取一个字符串储存到字符指针变量所指向的内存空间

(4)gets()读到回车换行才结束读取,遇到空格不结束读取,而scanf()遇到空格就结束读取

getchar和putchar函数,gets和puts函数——C语言初阶_第6张图片

.

    2.puts函数

(1)其形式为:puts(字符数组)——输出字符串的函数

(3)作用是将一个字符串(以‘\0’结束的字符串序列)输出到终端

(3)在输出字符串时会自动换行

.

    3.实践:(延续之前例题)

(1)我们看到,没有清空缓冲区照样可以输入‘Y’,是因为gets()依旧将缓冲区中的回车读取出来了,且可以忽略空格造成的影响。如果前面使用的是scanf,那么通过键盘给变量赋值前,就必须先使用getchar()清空缓存区

(2)由于使用char[]数组的形式存的,数组的名字实际上就是整个数组的首地址,而指针所指向的也是地址

getchar和putchar函数,gets和puts函数——C语言初阶_第7张图片

你可能感兴趣的:(c++,c语言,开发语言)