文章目录
前言
一般可以用 scanf( ) 和 printf( ) 根据 %c 转换说明读写字符,另外,可以用只处理字符的函数用 getchar( ) 和 putchar ( ) 对字符输入/输出
getchar( ) 和 putchar ( ) 定义在头文件 stdio.h 中
其实,getchar( ) 和 putchar ( ) 都不是真正的函数,它们被定义为供预处理器使用的宏
缓冲区
用户输入的字符被收集并存储在一个被称为缓冲区(buffer)的临时存储区,按下 Enter 键后,程序才可使用用户输入的字符
getchar( )
字符输入
getchar( ) 没有参数,它从输入队列中返回下一个字符
例如
ch = getchar();
//作用和下面语句一样
scanf("%c", ch);
输入一串字符
//1、
while ((ch = getchar()) != '\n')
{
//处理字符
}
//是下面这种形式的简写
//2、
ch = getchar();
while (ch != '\n')
{
//处理字符
ch = getchar();
}
重复输入,直到文件结尾 while ((ch = getchar()) != EOF)
#include <stdio.h>
int main()
{
char ch;
while ((ch = getchar()) != EOF)
{
//处理字符
putchar(ch);
}
return 0;
}
EOF,文件结束的标志:
- 用 getchar( ) 读取文件检测到文件结尾时将返回一个特殊的值
- scanf( ) 函数检测到文件结尾时也返回EOF
- EOF 定义在 stdio.h 文件中:
#define EOF (-1)
结束while:
<Ctrl + z>组合键然后按 Enter 键的方式来告诉系统已经到了EOF
运行结果:
第四次输入按 Enter 键输入一个换行符,后又打印一次
第六次输入<Ctrl + z>组合键然后按 Enter 键后退出 while 循环
putchar( ) 字符输出
putchar( ) 函数打印它的参数
例如
putchar(ch);
//作用和下面语句一样
printf("%c", ch);
while(scanf(“%d”,&n) != EOF)
当当前输入缓存还有东西时就一直读取,直到输入缓存中的内容为空时停止
#include <stdio.h>
int main()
{
int n;
while (scanf("%d",&n) != EOF)
{
}
return 0;
}