[英]c fscanf save by pattern
這是我試圖分開的線,從開始直到:
,吃任何空格,從那里開始:
file1: file2,file3,file4
我的代碼是:
while(fscanf(fp,"%s: %s",map[i].name, map[i].filesNeeded) == 1)
{
printf("%s %s\n",map[i].name, map[i].filesNeeded);
i++;
}
永遠不會保存第二個參數。 結果是:
file1:
file2,file3,file4
代替:
file1 file2,file3,file4
首先,fscanf將增加匹配的每個項目的回報,因此它應該是== 2。
此外,您將需要使用%[^:]而不是%s,因為%s將不知道何時停止。
int main(int argc, char** argv)
{
char test[] = "one: two,three";
char part1[20];
char part2[20];
printf("%i\n", sscanf(test, "%[^:]: %s", part1, part2));
printf("%s %s\n", part1, part2);
}
輸出:
2
one two,three
while(fscanf(fp,"%[^:]: %s",map[i].name, map[i].filesNeeded) == 2)
{
printf("%s %s\n",map[i].name, map[i].filesNeeded);
i++;
}
我修改了代碼。你可以嘗試一下這樣的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.