1

我正在使用该fscanf函数扫描由逗号分隔的大字符串,大字符串中的最后一个子字符串由星号 (*) 分隔。这是一个例子:

子串1,子串2,子串3*子串4

我能够毫无问题地解析用逗号分隔的子字符串,但是当它到达星号时,它会停止程序,就像fscanf阻塞一样。我在 中使用%[^...]格式说明符fscanf,如下所示:

fscanf(fs, "%[^*,]%*c", str);

上面的代码是一个简单的 for 循环,它会扫描多次。如您所见,我一直在扫描,直到出现星号或逗号。但是,恐怕我没有正确地将星号包含在集合中。有人可以纠正我的错误吗?

谢谢。

4

1 回答 1

0

模式中唯一的特殊字符%[^-]

如果要读取的下一个字符是 a','或 a ,则此模式将失败'*'。因此,如果您有两个连续的逗号或星号,那么您的循环将卡住并停止阅读。

于 2012-08-16T03:45:58.297 回答