私はscanfにスペースで区切られたいくつかの文字列を読み込まなければなりません。しかし、私はそれを読む必要がある文字列の数を事前に知っていませんが、1から5まではどこでもかまいませんが、入力に入力した後に読み込みを停止するようにscanfを設定することはできません。 %s %s %s %s %s
をやってみましたが、ちょうど1〜2の単語を入力した後に入力しても想像できるように、それ以上の読み込みを期待していますし、%s%*[^\n]%s%*[^\n]%s%*[\n]%s%*[\n]%s%*[^\n]
をしようとしました。それはどちらもうまくいかなかった。scanfオプションのマッチング
したがって、scanfにオプションの入力セクションを追加できるようにするにはどうすればよいですか。
ありがとうございました。
編集:私は、私はちょうどそれを解析するstrotk
/sscanf
その後、1行を読み取るためにfgets
を使用し、約scanfの
まあそれは私がそうする可能性が高いことです。私はこれのようにする方法があるかどうか疑問に思っていました。 – csteifel
@legionよくあることかもしれませんが、 'scanf'を使うのは本質的に信頼性がありません。あなたは、ユーザーが何を入力するかについて多くのコントロールを持っていません。一方、 'fgets'を使うと、バッファ内のすべての文字列が得られます。途中で' scanf'を立てることなく、適切に解析することができます。 – cnicutar