我正在尝试像这样读取一个 txt 文件的编号:
input=20
output=10
hidden=5
....
我试过这段代码:
char line[30];
char values[100][20];
int i = 0;
FILE *fp;
fp = fopen("myFile.txt", "r");
if(fp == NULL)
{
printf("cannot open file\n");
return 0;
}
while(fgets(line, sizeof(line), fp) != NULL)
{
sscanf(line, "%[^=]", values[i])
printf("%s\n", values[i]);
i++;
}
fclose(fp);
但我只获得了第一个单词,而没有获得 =
之后的数字。
我明白了
input
output
etc
代替
20
10
5
etc
我怎样才能得到这个号码??
最佳答案
这一行
sscanf(line, "%[^=]", values[i]);
表示“阅读所有内容,但不包括 =
符号到 values[i]
”。
如果您对等号之后的数字部分感兴趣,请按如下方式更改调用:
sscanf(line, "%*[^=]=%19s", values[i]);
此格式行的意思是“读取并忽略(因为有星号)直到并包括等号的所有内容。然后将长度最多为 19 个字符的字符串读入 values[i]
”。
关于c - 从文件中获取一个字符后的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813763/