c语言中getline的使用
时间: 2024-01-01 22:05:51 浏览: 91
getline函数是C语言标准库中的一个函数,用于从文件中读取一行数据。其函数原型为:
```c
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
```
其中,lineptr是一个指向字符指针的指针,用于存储读取到的数据;n是一个指向size_t类型的指针,用于存储lineptr指向的缓冲区的大小;stream是一个指向FILE类型的指针,表示要读取的文件流。
getline函数会自动分配内存来存储读取到的数据,并将lineptr指向这块内存。如果读取成功,函数返回读取到的字符数(不包括结尾的'\0'),否则返回-1。
下面是一个使用getline函数读取文件的例子:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp = fopen("test.txt", "r");
if (fp == NULL) {
perror("fopen");
exit(EXIT_FAILURE);
}
char *line = NULL;
size_t len = 0;
ssize_t nread;
while ((nread = getline(&line, &len, fp)) != -1) {
printf("Read %zd bytes: %s", nread, line);
}
free(line);
fclose(fp);
return 0;
}
```
该程序会打开名为test.txt的文件,并使用getline函数逐行读取文件内容并输出到屏幕上。
阅读全文