C语言中getchar()返回int类型的原因是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计942个文字,预计阅读时间需要4分钟。
前言:在C语言中,有一个重要的库函数getchar(),可以从终端获取一个字符的ASCII码值。当终端输入字符时,如果没有输入字符就返回,则会返回EOF(文件结束标志)。在遇到回车换行符前,所有输入的字符都会被保留在C语言中的输入缓冲区中。
前言
在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值。在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值。在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的字符都会缓冲在键盘缓冲器中,直到回车换行一次性将所有字符按序依次赋给相应的变量,在这里一定要注意最后一个字符即'\n',该字符也会赋给一个相应的变量(当然这要你定义的用来接收字符的变量数比你输入的可见字符多一才可以)。
然而最近在重新阅读K&R的《C程序设计语言》时对getchar()这个自带的函数的返回值产生了疑惑。从字面上看,给函数返回的类型应该是char型,但在示例中,却将返回内容赋值给了int型变量,示例代码如下:
#include <stdio.h> /* 将输入复制到输出 */ int main(void) { int c; while ((c = getchar()) != EOF){ putchar(c); } return 0; }
书中给出的解释为:
因为某些潜在的重要原因,我们在此使用int类型。
本文共计942个文字,预计阅读时间需要4分钟。
前言:在C语言中,有一个重要的库函数getchar(),可以从终端获取一个字符的ASCII码值。当终端输入字符时,如果没有输入字符就返回,则会返回EOF(文件结束标志)。在遇到回车换行符前,所有输入的字符都会被保留在C语言中的输入缓冲区中。
前言
在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值。在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值。在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的字符都会缓冲在键盘缓冲器中,直到回车换行一次性将所有字符按序依次赋给相应的变量,在这里一定要注意最后一个字符即'\n',该字符也会赋给一个相应的变量(当然这要你定义的用来接收字符的变量数比你输入的可见字符多一才可以)。
然而最近在重新阅读K&R的《C程序设计语言》时对getchar()这个自带的函数的返回值产生了疑惑。从字面上看,给函数返回的类型应该是char型,但在示例中,却将返回内容赋值给了int型变量,示例代码如下:
#include <stdio.h> /* 将输入复制到输出 */ int main(void) { int c; while ((c = getchar()) != EOF){ putchar(c); } return 0; }
书中给出的解释为:
因为某些潜在的重要原因,我们在此使用int类型。

