我有以下格式的文件
[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]下的第一个值,然后它将退出循环。正在寻找我的问题的任何建议。
答案 0 :(得分:0)
if (temp == " ") {
continue;
}
是换行符,因此它应该是
if (temp[0] == '\n') {
continue;
}