0

很抱歉问这个问题,因为我发现了类似的已回答问题,但我很难理解如何阅读长度未知但结构相同的行。

每行的结构如下:name:id:buyingPrice: sellPrice:profit:quantity

名称和 ID 是字符串,其余的是双精度。

我的问题是我不知道如何设置一个读取和存储每个字段的时间,是否可以获得有关如何完成此操作的详细说明?

这是我对文件的阅读(仅带有字符串):

file = fopen("fileData.txt", "rt");

if(file != NULL){
    char lineSize[128] = "";

    while(fgets(line, 128, file) != NULL){
        fscanf("%s:%s:%s:%s:%s:%s", string1, string2, string3, string4, string5, string6);

    }
    fclose(file);
4

2 回答 2

0

您是否考虑过strtok在 之后使用来解析令牌fgets

于 2013-06-02T12:29:02.370 回答
0

我会使用 scanf 格式的 'a' 修饰符:简单地说 'fscanf("%as:%as:...", ...)',传入未分配指针的地址并让 fscanf malloc他们给你。

这起源于一个 gnu 扩展,但是 AFAIK,它已成为 C11 标准。

于 2013-06-02T16:58:05.530 回答