C:接收txt文件中的密钥、实体和响应

C:接收txt文件中的密钥、实体和响应,c,arrays,csv,key-value,C,Arrays,Csv,Key Value,我有一个包含节标题、键和值的文本文件。看起来像这样 [what] apple = apple is a fruits. tv = television [who] steve = chemistry teacher 下面是我的代码 #define A1 1 #define A2 2 #define B1 3 /* to be implemented */ char intent[255]; char key1[255]; char key[255]; char inv[3][10] = {

我有一个包含节标题、键和值的文本文件。看起来像这样

[what]
apple = apple is a fruits.
tv = television
[who]
steve = chemistry teacher
下面是我的代码

#define A1 1
#define A2 2
#define B1 3

/* to be implemented */
char intent[255];
char key1[255];
char key[255];
char inv[3][10] = { "what","where","who" };
char file[255];

FILE* fileGet;

typedef struct { char* key; int val; } fileGetStruct;

static fileGetStruct fileGettable[] = {
    { "apple", A1 }, { "tv", A2 }, { "steve", B1 } };

snprintf(intent, 255, "[%s]", inv[0]);
//printf("%s\n", intent);

//scanf("%s", key1);

if ((fileGet = fopen("txt.ini", "r")) == NULL) {
    printf("File not found");
    exit(1);
}
scanf("%s", key1);
while (fgets(file, 255, fileGet) != NULL) {
    if (intent == "[") {
        switch (inv[0][10]) {
        case A1:
            printf("apple is a fruits");
            break;
        }
    }
}
fclose(fileGet);
}

我尽量不使用c语言硬编码。你知道如何解决这个问题吗?

用什么方法解决?解析它?这看起来像一个典型的。这些都比较容易解析,但也有很多库可以帮助您进行解析。我尝试了很多方法,比如strcmp、switch case和其他方法,但都是硬编码的,这是非常有用的wrong@kelly发布您的解决方案以便我们查看。您无法比较字符串,如
intent==“[”
。和
inv[0][10]
超出了
inv[0]
的范围。
inv[0][i]
对于任何有效的索引,
i
是一个不等于整数
1
2
3
的单个字符。总之,您可能需要后退几步,并获得一些关于C的入门书籍或参加一些初级课程。