gpt4 book ai didi

c - 如何正确地将 CSV 从文本文件加载到 C 中的结构?

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

我有一个由“|”分隔的单词和数字组成的文件我需要将它们加载到一个结构中,以便稍后使用它们。这是一个包含国家、货币和汇率的文件,我需要将它们分解成一个结构,然后使用它们。基本上我需要创建一个C货币兑换程序。

文件中的数据如下所示:

country|currency|quantity|code|rate of exchange
Canada|dollar|1|CAD|19,430

这就是结构的样子(FILE *currency = fopen("denni_kurz.txt", "r")):

struct data
{
char buffer[100];
char country[40];
char nameofcurrency[20];
int quantity;
char code[5];
float exchangerate;
}currency[40];

然后我有一个循环来加载所有这些:

while (!feof(currencies))
{

}

这里的问题是我阅读了文档,但它对我不起作用。谁能给我提示如何将它们加载到它们所属的位置?

最佳答案

您可以使用 sscanf 函数加载 CSV 文件。默认情况下 sscanf() 将使用空格作为分隔符。您可以指定 |在 sscanf 中并将其存储在结构中。首先使用 fgets 从 csv 文件中获取行并将其存储在数组中。然后从数组中获取行并将其存储在结构中。

eg:        while(fgets(array,BUFSIZ,fp) != NULL)
sscanf(array," %d | %s | %s | %d | %d | %s | %f | %[0-9]s",&account[i].customer_id,account[i].name,account[i].address,&account[i].account_number,&account[i].age,account[i].sex,&account[i].balance_amount,account[i].mobile_number);

然后,如果打印结构变量,相应的值也会被打印。

printf("id:%d\n name:%s\n address:%s\n account number:%d\n age:%d\n sex:%s\n balance:%f\n mobile:%s\n",account[j].customer_id,account[j].name,account[j].address,account[j].account_number,account[j].age,account[j].sex,account[j].balance_amount,account[j].mobile_number);

关于c - 如何正确地将 CSV 从文本文件加载到 C 中的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330671/

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