从文件中逐行读取已知结构但长度未知

时间:2013-06-02 12:09:42

标签: c file line

我很抱歉提出这个问题,因为我找到了类似的回答问题,但是我很难理解如何阅读未知长度的行,但结构是一样的。

每一行的结构如下:name:id:buyingPrice:sellingPrice: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);

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我将使用的是scanf格式的'a'修饰符:简单地说'fscanf(“%as:%as:...”,...)',传入未分配指针的地址和让fscanf为你们购买它们。

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