从文件中读取值并存储到C

时间:2016-12-02 08:32:04

标签: c

我有以下格式的文件

[KeyString1]
Value1,Value2,Value3
<blankline>
[KeyString2]
Value1,Value2a,Value3a

现在我想要分别属于KeyString1和KeyString2的读取值并存储在不同的Structure中。

这是我到现在为止所尝试的

enum VAR_TYPE
{
    VAR_KeyString1,   
    VAR_KeyString2, 

};
int main(void) {

    FILE *fp;
    char temp[512];
    int  t_scanType;  

    if ((fopen_s(&fp, "/text.txt", "r")) != NULL) {
        return(-1);
    }
    t_scanType = -1;
    while(fgets(temp, 512, fp) != NULL)
    {
        if (temp == " ") {
            continue;
        }

        if ((strstr(temp,"[KeyString1]")) != NULL) {
            t_scanType=VAR_KeyString1;
            continue;
        }
        if ((strstr(temp,"[KeyString2]")) != NULL) {
            t_scanType=VAR_KeyString2;
            continue;
        }


        switch(t_scanType)  
        {
        case VAR_KeyString1:
          /* Store Values to specific structure */
            break;

        case VAR_KeyString1:
           /* Store Values to specific structure */
            break;
        default:
            break;
        }

        fclose(fp);
        return(0);
    }
}

上面的代码只能存储[KeyString1]下的第一个值,然后它将退出循环。正在寻找我的问题的任何建议。

1 个答案:

答案 0 :(得分:0)

if (temp == " ") {
    continue;
}

是换行符,因此它应该是

if (temp[0] == '\n') {
    continue;
}