fgets(str, sizeof(str), stdin);
时间: 2024-10-19 15:13:28 浏览: 69
`fgets()` 是 C 语言标准库中的一个字符串读取函数,用于从指定的输入流(如 `stdin`,代表标准输入)读取一行文本数据到给定的字符数组 `str` 中。该函数的原型定义通常如下:
```c
char *fgets(char *str, int n, FILE *stream);
```
参数说明如下:
1. `str`:指向存储读取数据的字符数组的指针。
2. `n`:一个整数,表示要读取的最大字符数(不包括结束符 '\0'),但不超过 `stream` 的可用字节数。
3. `stdin` 或 `stream`:输入流,通常是 `FILE *` 类型的变量,用来指定从哪个文件或设备进行读取,默认为标准输入。
使用 `fgets()` 函数时,需要注意以下几点:
- 结束符 '\n' 会被包含在读取的数据里,除非到达了文件的实际末尾或者 `n` 字符被达到(但不包括结束符)。
- 如果遇到错误,例如输入流关闭、内存不足等,`fgets()` 可能返回 `NULL`。
例如,如果你想从标准输入读取一行用户输入直到换行符,你可以这样做:
```c
#include <stdio.h>
int main() {
char input[50]; // 假设最大输入长度为49个字符(不含'\0')
if (fgets(input, sizeof(input), stdin) != NULL) {
// 移除可能存在的换行符
input[strcspn(input, "\n")] = '\0';
printf("User entered: %s\n", input);
} else {
printf("Error reading from standard input.\n");
}
return 0;
}
```
阅读全文