我想以一种载入简单变量和值的方式读取C文件。例如,让我们说这是文件的文本:在c中使用分隔符'fscanf'
a=100
b=hello
c=world
流的想法是加载文件的每一行,使得在等号左边的字符串签署将是变量的名称,右边的字符串将作为值加载。这是一个会阅读我所描述的方式文件的代码:
#include <stdio.h>
int main(void)
{
FILE* f;
f = fopen("test.txt", "r");
char name[256];
char value[256];
while(fscanf(f, "%255[^=]=%255[^=]", name, value) == 2)
printf("%s, %s\n", name, value);
return 0;
}
但是当我编译并运行它,我得到的输出是:
a, 100
b
我应该有口难言对于格式化字符串,scanf
或fscanf
中的分隔符的工作方式只有非常基本的掌握。我有一种感觉是这里出了问题,但我还没有找到或偶然找到解决方案。任何帮助,将不胜感激!
你可能最好关闭使用基于行的输入(['与fgets()'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fgets.html)或 [' getline()'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/getline.html)),接着是'sscanf()' - 但是你仍然会使用[advice](http://来自[user3121023](http://stackoverflow.com/users/3121023/user3121023)的stackoverflow.com/questions/39281646/using-delimiters-for-fscanf-in-c#comment65897740_39281646)。 –