[英]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.