問題タブ [cstdio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - cstdio ストリームと iostream ストリーム?
C++ で使用されるストリームと標準 C の一部であるストリームとのios_base::sync_with_stdio
間の同期を基本的にオフにする (既にオフにしている場合はオンにする) ことができる関数の存在を知りました。iostream
cstdio
さて、私は常に、C のとはstdout
、基本的に C++ の iostream クラスのオブジェクトのセットにラップされていると考えていました。しかし、それらが互いに同期する必要がある場合、これは C++ のクラスがCなど のラッパーで はないことを示しています。stderr
stdin
iostream
stdin
私はこれでかなり混乱していますか?C++ の iostream と C の stdio が、抽象化のレベルが異なるだけで、まったく同じことを行う別のものであることを誰かが明確にすることはできますか? 同じ物だと思ってた!?
それらが同期されなければならないのはどうしてですか?私はいつも、それらは本質的に同じものであり、一方が他方を包み込んでいると思っていました。
c++ - cstdio を使用してファイルをインプレース編集しますか?
の関数を使用して、データを書き込むファイルがありますcstdio
。ファイルが中断することなくファイルに正常に書き込まれたことを確認したいので、後でファイルから読み取るときにファイルから何を期待するかを知っています。私がそれを行う方法は、最初に 8 バイト相当のゼロ化されたデータをファイルの先頭に書き込み、通常どおりファイルを書き込み、次に最後のステップとして、ファイルを巻き戻し、最初の 8 バイトを次のように上書きすることです。ファイルが完成し、整形式であることを示す特定の署名。
私の質問は、最初の 8 バイトを適切に編集する最良の方法は何ですか?
ではfopen()
、使用する適切な開始モード (2 番目の引数) は何ですか?
rewind()
最初だけ使っても大丈夫fwrite()
ですか、それとも上書きする行為に特別な機能がありますか?
c - C FILE* 読み取り/書き込みおよびオプションの作成
読み取りおよび書き込みアクセス用に存在するかどうかに関係なく、ファイルを開こうとしています。また、このファイルに対してシーク操作を実行する必要があります。私が抱えている問題は、「r」ファイルフラグではファイルが存在する必要があり、「w」フラグでは既存のコンテンツが破棄され、「a」フラグでは常にファイルの最後に追加されることでシーク操作が無効になることです。そのため、3 つのオプションのいずれも、私が必要とすることをしていないようです。回避策について何か考えはありますか?または、必要に応じてファイルを作成し、「r+」フラグを付けて再度開く必要がありますか?
c++ 内で cstdio を使用しています (fopen、fseek、rewind など)。プロファイリングにより、アプリケーションに対して iostream が遅すぎることがわかりました。
c - 入力バッファ C のフラッシュ
注: fflush(stdin) は機能しませんでした。
問題:
scanf (inb4 deprecated) を使用して while ループとして数値を入力しています。1 つ入力すると、バッファーは残りを空白行で埋めます。
コード:
出力:
c++ - cin で scanf() のような予期される文字をスキップする
C++ でscanf("%d # %d",&a,&b);
ある種の効果を達成する方法は?cin
c - sscanf 文字列形式指定子が '\t' に対して機能しない
上記のコードは '\t' では機能しません。なぜですか? 私はvc6.0 を使用しています
動作しません
c++ - fflush とは正確には何ですか?
http://www.cplusplus.com/reference/cstdio/fflush/を読んでいて、それが何を意味するのか興味がありました。ウェブサイトによると、次のように書かれています。
指定されたストリームが書き込み用に開かれている場合 (または更新用に開かれており、最後の i/o 操作が出力操作であった場合)、出力バッファー内の書き込まれていないデータはすべてファイルに書き込まれます。
ファイルへの出力バッファとはどういう意味ですか?
c++ - C++ I/O ライブラリ
これをグーグルで調べてみましたが、場所によって異なる答えが得られます。次のいずれかを使用する必要がある場合を知りたいです。
私の場合、これらを同じ意味で使用すると、すべての C++ プログラムが機能するように見えるため、違いを理解できません。そうは言っても、iostreamはcinやcoutなどを定義することで入出力のストリームをサポートしているようですが、間違っているかもしれません。C++標準を参照して、これらの使用法についての回答/信頼できる引用をいただければ幸いです。どちらか一方を使用することに関連するパフォーマンス上の利点があるかどうかは疑問です。