gpt4 book ai didi

c - 如何在 C 编程代码中从文本文件中读取数据数组?

转载 作者:行者123 更新时间:2023-11-30 14:50:02 25 4
gpt4 key购买 nike

我有一个代码可以读取包含一堆数字的文本文件。我使用下面的代码来访问它,但这只获取第一行。

我还有 99 行其他数据想要访问。如何让它读取其他99行数据?

fscanf(fp1,"%lf,%lf,%lf,%lf",&a,&b,&c,&d);

最佳答案

正如 Elia 在评论中提到的,最好的策略是阅读整行内容然后用sscanf解析它。

char buffer[1024];
while(fgets(buffer, sizeof buffer, fp1))
{
if(sscanf(buffer,"%lf,%lf,%lf,%lf",&a,&b,&c,&d) != 4)
{
fprintf(stderr, "Invalid line format, ignoring\n");
continue;
}

printf("a: %lf, b: %lf, c: %ld, d: %lf\n", a, b, c, d);
}

另一个选择是继续阅读直到\n:

while(1)
{
if(fscanf(fp1,"%lf,%lf,%lf,%lf",&a,&b,&c,&d) != 4)
{
fprintf(stderr, "Invalid line format, ignoring\n");
if(clear_line(fp1) == 0)
{
fprintf(stderr, "Cannot read from fp1 anymore\n");
break;
}
continue;
}

printf("a: %lf, b: %lf, c: %ld, d: %lf\n", a, b, c, d);

if(clear_line(fp1) == 0)
{
fprintf(stderr, "Cannot read from fp1 anymore\n");
break;
}
}

clear_line看起来像这样:

int clear_line(FILE *fp)
{
if(fp == NULL)
return 0;

int c;
while((c = fgetc(fp)) != '\n' && c != EOF);

return c != EOF;
}

关于c - 如何在 C 编程代码中从文本文件中读取数据数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49221853/

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