1

コンマで区切られた大きな文字列をスキャンする関数を使用していfscanfます。大きな文字列の最後の部分文字列はアスタリスク (*) で区切られています。以下に例を示します。

サブストリング 1,サブストリング 2,サブストリング 3*サブストリング 4

コンマで区切られた部分文字列を問題なく解析できますが、アスタリスクに到達すると、fscanfブロックと同様にプログラムが停止します。以下に示すよう%[^...]に、でフォーマット指定子を使用しています。fscanf

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

上記のコードは、複数回スキャンする単純な for ループにあります。ご覧のとおり、アスタリスクまたはコンマが表示されるまでスキャンしています。ただし、アスタリスクをセットに正しく含めていないことが残念です。誰かが私の間違いを訂正できますか?

ありがとう。

4

1 に答える 1

0

%[パターンで特別な文字は、、、、^および-だけ]です。

次に読み取る文字がa','または。の場合、このパターンは失敗し'*'ます。したがって、2つの連続したコンマまたはアスタリスクがある場合、ループは詰まり、読み取りを停止します。

于 2012-08-16T03:45:58.297 に答える