我有一个包含以下内容的文件
"AAA";"BBB"
我尝试以这种方式提取2列:
char v1[50]; char v2[50]; int ret = fscanf(fp, "\"%s\";\"%s\"", v1, v2);
但它返回1并且'v1'中的所有内容!
这是正常的吗?
这是因为"%s"
格式读取空格分隔的字符串.它将读取输入,直到它到达空白区域或输入结束.
你可以在"%["
这里使用这种格式,也许就像这样
fscanf(fp, "\"%[^\"]\";\"%[^\"]\"", v1, v2);
有关详细信息,请参阅此scanf
(和系列)参考.