scanf和格式相关?

4
我有一个文件,内容如下:
"AAA";"BBB"

我尝试这样提取2列:

我尝试这样提取2列:

char v1[50];
char v2[50];
int ret = fscanf(fp, "\"%s\";\"%s\"", v1, v2);

但它会返回1以及'v1'中的所有内容!

这正常吗?

1个回答

5
这是因为"%s"格式读取以空格分隔的字符串。它会读取输入,直到遇到白空格或输入结束。
你可能可以在这里使用"%["格式,类似于:
fscanf(fp, "\"%[^\"]\";\"%[^\"]\"", v1, v2);

请查看例如这个scanf(和其它函数)的参考资料以获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接