描述
- C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数。
- 可以读取一切字符,包括空格,回车等。
声明
下面是 getchar() 函数的声明。
int getchar(void)
参数
- NA
返回值
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
实例
下面的实例演示了 getchar() 函数的用法。
#include <stdio.h>
int main ()
{
char c;
printf("请输入字符:");
c = getchar();
printf("输入的字符:");
putchar(c);
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果:
请输入字符:a
输入的字符:a
特殊使用
配合scanf获取字符串,可以用来处理换行输入结束。
- 由于scanf("%s")获取的字符数组,在遇到换行或者回车的时候会停止输入,并且换行和回车并不会读取。
- 而getchar()可以读取并判断换行和回车。
比如输入 touch a.txt am pm
char st[100];
scanf("%s", st);
while(getchar() != '\n){
char file[100];
scanf("%s", file);
}
这个函数可以读取touch后面的文件名称。
在输入一个文件名之后,遇见空格,终止,然后在ch读入空格,在scanf…
直到ch 读取的为换行符。
另外
linux的换行符为'\r' 或者‘\n’
win的只有'\n'
这个需要注意