2011-01-16 28 views
0

ドキュメンテーションによると、cin.get(...)は終了文字(パラメータt)をバッファに残します。私はこれがgetline(...)と比較してどのように有用であるのだろうと思っています... BTW、char buf [256]を持っているとしたら、bufをどのようにしてflushできますか?なぜcin.get(char *、int、char t)およびcin.getline(char *、int、char t)ですか?

+1

質問のタイトルを編集してください:あなたはすでに「違いは何ですか?」と答えました。 –

+4

2番目の無関係な質問を同じ投稿に入れないでください。 –

答えて

2

改行の場合、改行改行は改行の一部とみなされ、通常は改行を削除する必要があります。コンベンションでは、でない結果の文字列にが含まれていることが判明しました。そのため、getlineは格納する代わりに破棄します。

行以外の場合、区切り文字は抽出されるフィールドの一部と見なされない可能性があるため、このフィールドを残しておき、後で読みたいことがあります。

私はchar buf [256]を持っていると仮定して、どのようにしてそのbufをcoutにフラッシュできますか?

ことが、その後、COUT < < BUF(\ 0で終了)C-stringはなら;.それ以外の場合は、フォーマットされていないバイト列として書き出すことができます。

+0

投稿しましたが、非常によく似た回答を削除しました。なぜなら、私はその用途を発明できなかったからです。 –

+1

@larsmans:あなたが 'tee'プログラムを実装していたかどうかを考えてください。 –

+0

私は、 'tee'を' char'の 'char'で、iostreamのバッファリングや固定サイズのバッファに依存して実装したいと思います。 –

関連する問題