gpt4 book ai didi

c - 如何 fscanf 文件并根据行的第一个字符将行中的数据存储在不同的变量中?

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:28 26 4
gpt4 key购买 nike

我有一个包含数据的文件,这里是数据示例:

S:BMW;328i;A8;2.0
S:GMC;K1500 SIERRA 4X4;A4;5.3
C:SUBCOMPACT;M5;X
C:PICKUP TRUCK;A4;X

我想扫描行中的第一个字符并将数据存储在A

如果 A 是 'S',我想将剩余的数据存储在 BC 的行中D, E

如果 A 是 'C',我想将剩余的数据存储在 FG 的行中H

如何为文件中的每一行执行此操作?

这就是我为另一个文件所做的,其中每一行都具有相同的格式:

int currentSize = 0;
while(fscanf(fp, "%d,%[^,],%[^,],%[^,],%f,%[^,],%c,%f,%f,%f,%f", &data[currentSize].year, &data[currentSize].make, &data[currentSize].model,
&data[currentSize].type, &data[currentSize].engineSize, &data[currentSize].transmissionType, &data[currentSize].fuelType, &data[currentSize].city,
&data[currentSize].hwy, &data[currentSize].fuelPerYear, &data[currentSize].co2) != EOF) {
currentSize++;
}
return currentSize;

最佳答案

可以使用fgets()获取每一行的内容,然后使用sscanf()根据第一个字符获取每个字段:

char line[MAX_CHAR];
while (fgets(line, sizeof line, fp) != NULL)
{
switch(line[0])
{
case 'S':
//process line using sscanf()
break;
case 'C':
//process line using sscanf()
break;
//...
}
}

关于c - 如何 fscanf 文件并根据行的第一个字符将行中的数据存储在不同的变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22705250/

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