我想以一種載入簡單變量和值的方式讀取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)。 –