char * fgets(char *restrict str,int size,FILE* restrict stream);
时间: 2023-07-23 14:07:39 浏览: 103
PHP Stream_*系列函数
`fgets` 是C语言标准库中的一个函数,用于从指定的文件流中读取一行数据,并存储到指定的字符串中。它的函数原型如下:
```c
char *fgets(char *restrict str, int size, FILE *restrict stream);
```
参数说明:
- `str`:指向用于存储读取到的字符串的字符数组的指针。
- `size`:要读取的最大字符数(包括结尾的空字符)。
- `stream`:要读取的文件流指针。
返回值:
- 如果成功读取到一行数据,则返回指向存储在 `str` 中的字符串的指针。
- 如果到达文件末尾或发生错误,则返回 `NULL`。
例如,要从名为 `input.txt` 的文件中逐行读取数据,并将每行数据打印出来,可以使用以下代码:
```c
#include <stdio.h>
int main() {
FILE *file = fopen("input.txt", "r");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
char line[100];
while (fgets(line, sizeof(line), file) != NULL) {
printf("%s", line);
}
fclose(file);
return 0;
}
```
在上面的示例中,我们首先使用 `fopen` 函数以只读模式打开名为 `input.txt` 的文件。然后,我们使用 `fgets` 函数逐行读取文件中的数据,每次读取一行数据存储到 `line` 数组中。最后,我们通过循环打印每行数据,并在循环结束后关闭文件。
需要注意的是,`fgets` 函数会将换行符 `\n` 一起读取并存储到字符串中,所以在打印时不需要额外添加换行符。另外,为了安全起见,我们在定义 `line` 数组时给定了足够的大小来存储读取到的行数据。
阅读全文