[英]parsing a string using fscanf using %[…] in C
我正在使用fscanf
函数来扫描以逗号分隔的大字符串,而较大字符串中的最后一个子字符串用星号(*)分隔。 这是一个例子:
substring1,substring2,substring3*substring4
我可以毫无问题地解析用逗号分隔的子字符串,但是当到达星号时,由于fscanf
被阻止,它使程序停顿了。 我在fscanf
使用%[^...]
格式说明符,如下所示:
fscanf(fs, "%[^*,]%*c", str);
上面的代码在一个简单的for循环中,该循环进行了多次扫描。 如您所见,我正在扫描直到出现星号或逗号。 但是,恐怕我没有在星号中正确添加星号。 有人可以纠正我的错误吗?
谢谢。
%[
模式中唯一特殊的字符是^
, -
和]
。
如果下一个要读取的字符是','
或'*'
','
则此模式将失败。 因此,如果您有两个连续的逗号或星号,则您的循环将卡住并停止阅读。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.