怎么使用 fgets()
时间: 2024-11-04 14:08:45 浏览: 5
`fgets()` 是 C 语言标准库中的一个函数,用于从指定的文件流(包括标准输入流 `stdin`)读取一行文本数据,并将其存储到给定的字符数组中。使用 `fgets()` 的基本语法如下:
```c
size_t fgets(char* buffer, size_t n, FILE* stream);
```
参数说明:
- `buffer`:指向要存放读取数据的目标缓冲区。
- `n`:最大读取字节数,不包括换行符`\n`。如果你想要读取直到遇到换行符或文件结束,可以设置为 `EOF`(即 -1)。
- `stream`:要读取的文件流,通常是 `stdin`(标准输入)表示键盘输入。
下面是一个简单的示例,演示如何使用 `fgets()` 从用户输入获取一行文本:
```c
#include <stdio.h>
int main() {
char input[50]; // 创建一个足够大的字符数组来存储输入
FILE *fp = stdin; // 读取来自标准输入
// 使用 fgets 读取一行输入,直到遇到换行符或达到最大长度
if (fgets(input, sizeof(input), fp) == NULL) {
perror("Error reading from standard input"); // 如果出错,显示错误信息
return 1;
}
// 检查是否已读到换行符,如果没有则添加一个(假设最后一字符不是换行)
if (input[strlen(input)-1] != '\n') {
input[strlen(input)] = '\n'; // 添加换行符
}
// 输出用户输入
printf("User input: %s\n", input);
return 0;
}
```
在这个例子中,用户在命令行敲入任意文本后按下回车,`fgets()` 就会在输入末尾添加一个换行符。如果读取过程中发生错误,函数会返回 `NULL`,并调用 `perror()` 显示错误信息。
阅读全文