繁体   English   中英

在C中使用%[…]使用fscanf解析字符串

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM