getchar和putchar是两个标准C库函数,用于C编程中的输入和输出操作。它们是简单且常用的函数,用于逐个处理字符。两个函数的头文件都是:
(1)返回值:
以int类型返回所读取的字符ASCII值,如果发生错误或达到输入的末尾(例如从文件中读取时),getchar特殊返回值EDF(End-Of-File),通常定义为-1.(通过这里可以看出getchar的返回类型必须要是int型才能匹配此处的-1)
(2)用法:
在调用getchar函数时,它会等待用户在终端输入一个字符。一旦用户输入一个字符,并按下回车键,getchar函数会读取该字符并返回其ASCII码,如果读取失败或到达文件末尾(EOF),则返回特殊值EOF(通常表示为-1)
.
(1)将一个字符输出到标准输出(通常是控制台)
(2)用法:
可以使用putchar在控制台(屏幕)上显示字符(仅一个字符)
.
要求输入一串密码后,再次输入一个字符‘Y’或‘N’来确认密码的输入,若输入‘Y’则确认成功,若输入‘N’则确认失败
(上下比较,加入了while循环来清空缓冲区域)
(1)使用此函数时,scanf也会在缓存区等待键盘的输入,当最后输入回车时,会触发前面输入的字符串取走(不会取走\n)
(2)scanf读取字符串时遇到空格便不再继续读取,所以当输入密码换了一种形式,加了空格和其他字符时
(3)会在缓冲区中留下其他字符以及\n,可通过循环来清空缓存区
(4)再调用getchar函数时由于缓冲区里面有字符,不再等待直接取走\n
(5)getchar()-字符输入函数,没有参数,从输入缓冲区里面读取一个字符-【一次只能读取一个字符】
.
(上下两个代码表达同一个意思)
(还需要勤加练习,深入理解)
.
.
.
(1)gets()函数其形式为:get(字符数组)——输入字符串的函数
(2)gets()这个函数只有一个参数,参数类型为char*型,即str可以是一个字符指针变量名,也可以是一个字符组名
(3)功能:是从输入缓冲区中读取一个字符串储存到字符指针变量所指向的内存空间
(4)gets()读到回车换行才结束读取,遇到空格不结束读取,而scanf()遇到空格就结束读取
.
(1)其形式为:puts(字符数组)——输出字符串的函数
(3)作用是将一个字符串(以‘\0’结束的字符串序列)输出到终端
(3)在输出字符串时会自动换行
.
(1)我们看到,没有清空缓冲区照样可以输入‘Y’,是因为gets()依旧将缓冲区中的回车读取出来了,且可以忽略空格造成的影响。如果前面使用的是scanf,那么通过键盘给变量赋值前,就必须先使用getchar()清空缓存区
(2)由于使用char[]数组的形式存的,数组的名字实际上就是整个数组的首地址,而指针所指向的也是地址