gpt4 book ai didi

c-从文件中读取行

转载 作者:行者123 更新时间:2023-11-30 16:02:46 24 4
gpt4 key购买 nike

我是 c 语言新手,但我想从文件中读取文本。我不知道文件第一行的长度,那么如何为fgets函数编写正确的参数呢?现在我有:

char read[30]; // but I really don't know how long the line will be

while(fgets(read, sizeof(read), fp).......

最佳答案

您必须不断重新分配并附加到缓冲区,直到到达行尾。代码并不漂亮,但没有使用标准 C 库的简单替代方案:

char read[30];
char *line;
int len, total;

line = NULL;
total = 0;

do {
if (fgets(read, sizeof(read), fp) == NULL)
break;

len = strlen(read);

if (total == 0) {
total = len;
line = (char *)malloc(len);
strcpy(line, read);
} else {
total += len;
line = (char *)realloc(line, total);
strcat(line, read);
}
} while (read[len - 1] != '\n');

关于c-从文件中读取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4925018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com