C Primer Plus--- Chapter 8---Character Input/Output and Input Validation ---1. getchar() 和 putchar()
程序员文章站
2024-03-01 09:01:46
...
C Primer Plus--- Chapter 8---Character Input/Output and Input Validation ---4. getchar 和 putchar
1. getchar()
getchar() 位于 stdio.h 头文件中。C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。
int getchar(void)
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
2. putchar()
C 库函数 int putchar(int char) 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
int putchar(int char)
该函数以无符号 char 强制转换为 int 的形式返回写入的字符,如果发生错误则返回 EOF。
3. 缓冲区(Buffers)
有如下程序:
/* echo.c -- repeats input */
#include <stdio.h>
int main(void)
{
char ch;
while ((ch = getchar()) != '#')
putchar(ch);
return 0;
}
结果:
Hello, there. I would[enter]
Hello, there. I would
like a #3 bag of potatoes.[enter]
like a
程序分析:
以上程序没有在输入一个字符后立即输出,如:
HHeelllloo,, tthheerree.. II wwoouulldd[enter]
lliikkee aa #
因为,系统采用的是带缓冲的输入,即从键盘输入的数被临时的存放在缓冲区内,知道按 enter 建后,缓冲区的字符才被输送给程序。
这样做既可以节约时间,又可以防止错误的输入。
这种由 enter 触发的形式为 line-buffered I/O,
另一种是 full-buffered I/O,这种往往用于文件的输入输出,当文件内容满了后会输出缓冲区的内容。
上一篇: React的qs插件
下一篇: