C 语言输入函数详解320


在 C 语言中,输入函数是用来从标准输入(通常是键盘)获取数据的。这允许程序与用户交互并收集所需信息。

scanf() 函数

scanf() 函数是 C 语言中使用最广泛的输入函数。它通过一个格式字符串和可变数量的参数获取用户输入,并将输入数据存储在这些参数中。

格式字符串指定要输入的数据类型和格式。例如,要输入一个整数,可以使用格式说明符 "%d"。要输入一个浮点数,可以使用 "%f"。

以下是 scanf() 函数的一般语法:int scanf(const char *format, ...);

其中:* format:指定要输入的数据类型和格式的格式字符串。
* ...:可变数量的参数,用于存储输入数据。

scanf() 函数返回一个整数,表示成功获取的数据项数。如果函数无法成功读取任何数据项,则返回 0。如果发生输入错误(例如输入非法字符),则返回 EOF(文件结束)。

getchar() 函数

getchar() 函数从标准输入获取一个字符,并将其存储在由 int 变量指向的内存位置中。它不从缓冲区中读取字符,因此不会受到输入缓冲问题的影响。

以下是 getchar() 函数的一般语法:int getchar(void);

getchar() 函数返回一个整数,表示获取的字符的 ASCII 码。如果发生输入错误(例如文件结束),则返回 EOF。

gets() 函数

gets() 函数从标准输入读取一行(包括换行符),并将其存储在由 char * 变量指向的字符数组中。它从缓冲区中读取字符,因此可能会受到输入缓冲问题的影响。

以下是 gets() 函数的一般语法:char *gets(char *str);

其中:* str:指向要存储输入行的字符数组的指针。

gets() 函数返回输入行的地址,如果发生输入错误(例如文件结束),则返回 NULL。

fgets() 函数

fgets() 函数从标准输入读取一行(包括换行符或指定长度),并将其存储在由 char * 变量指向的字符数组中。它从缓冲区中读取字符,因此可能会受到输入缓冲问题的影响。

以下是 fgets() 函数的一般语法:char *fgets(char *str, int n, FILE *stream);

其中:* str:指向要存储输入行的字符数组的指针。
* n:要读取的最大字符数,包括换行符。
* stream:要从中读取的文件流(默认为标准输入)。

fgets() 函数返回输入行的地址,如果发生输入错误(例如文件结束),则返回 NULL。

选择合适的输入函数

选择合适的输入函数取决于具体情况。以下是每个函数的优缺点:


函数
优点
缺点




scanf()
易于使用和格式化输入
容易受到格式错误的影响


getchar()
直接从标准输入获取字符
不缓存输入,可能效率较低


gets()
一次读取整行输入
受到缓冲问题的影响,容易溢出


fgets()
指定长度读取整行输入
受到缓冲问题的影响


2025-02-09


上一篇:C 语言汇编输出

下一篇:函数在 C 语言中的用途和最佳实践