はそれがコールする(標準に従って=明確に定義された行動)完全にOKです。 これらの2つの関数のいずれかを呼び出す前に、指定されたサイズがnullであるかどうかをテストする必要があるかどうかを知りたいと思います。std :: ifstream :: readまたはstd :: ofstream :: zeroパラメータを使用した書き込み?</p> <pre><code>mystream.read(buffer, 0); </code></pre> <p>または</p> <pre><code>mystream.write(buffer, 0); </code></pre> <p>(そしてもちろん何も読まないか書き込まれます):
6
A
答えて
8
はい、ふたつの関数はフォーマットされていない入出力関数(sentryを構築し、eofbitが設定されていればfailbitを設定し、必要に応じて束縛されたストリームをフラッシュします)の動作を行います。この句を取得:
§27.7.2.3[istream.unformatted]/30
文字を抽出して格納されている以下のいずれかが発生するまでれる:
を - n文字が格納されています。以下のいずれかが
が発生するまで
は§27.7.3.7[ostream.unformatted]/5
文字が挿入されている - N文字が挿入されています。
「ゼロ文字が格納/挿入されています」は、何かが格納または抽出される前にtrueです。
実際の実装を見て、私はequivalent loop
0
を持ってfor (; gcount < n; ++gcount)
in libc++またはsgetn(buffer, n);
in stdlibc++27.7.2.3 Unformatted input functions/1
から別の抽出はゼロサイズの入力バッファは有効なケースであることを私たちに手掛かりを与える参照してください。
未フォーマットの入力文字配列を非ゼロサイズとする関数は、配列の最初の位置にヌル文字(charT()を使用)も格納します。
関連する問題
- 1. Heredoc <<<または<<?
- 2. std :: operator <<とstd :: ostream :: operator <<
- 3. <string int>をファイルに書き込む - 'operator <<'と一致しないものはありません
- 4. std :: cout << xの間のdiffrenceは何ですか;とstd :: cout << x << std :: endl ;?
- 5. 私は2つの機能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>をお持ちの場合は2個の関数のC++
- 6. std :: cout << std :: cinは何をしますか?
- 7. param_typeコンストラクタがランダムな分布に対して明示的になるのはなぜですか?</p> <pre><code>int main() { std::random_device engine; std::uniform_int_distribution<size_t> dis; std::cout << dis(engine, {0, 5}) << std::endl; } </code></pre> <p>をしかし、それはエラーメッセージで失敗します:
- 8. Gitは<<<<<<< HEADをファイルに追加し続けます
- 9. <はstd :: reference_wrapper <T>>はstd ::ベクトルします<T>
- 10. のstd ::機能とstd :: <code>std::packaged_task</code>が<code>void operator()(ArgTypes... args)</code>をオーバーロードしていますので、私は、<code>std::function<void()></code>の<code>std::vector</code>に<code>std::packaged_task</code>を移動しようとしていますpackaged_task変換
- 11. バイナリファイルをC++の "ベクトル<ベクトル< bitset<32>>"に読み込み/読み込む方法は?
- 12. cout << "привет";またはwcout << L "привет";
- 13. 1 << 0とは何ですか?
- 14. 「<%:」は何をしますか?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>「<%:」何をん:行う
- 15. std :: shared_ptr << std :: vector <double>>を関数に渡す
- 16. なぜstd :: stringを書き込んで、未知の演算子<<エラー?
- 17. このコードスニペットで `1 << 0`は何をしますか?
- 18. Tortoise svn <<<<をファイルに追加しています!
- 19. 私は、我々のシステムで<code>true</code>または<code>false</code>を表し<code>short</code>値を変換しようとしています-1(<code>true</code>)、0(<code>false</code>)ブールエンティティフレームワーク
- 20. <<<
- 21. << CONSTANTは何をしますか?
- 22. std :: shared_ptr <std :: vector <double>>
- 23. << and >をオーバーロードしてファイルの書き込みとクラスの読み込みに使用する
- 24. 埋め込みCのマクロはどのようにメモリに影響しますか?</p> <pre><code>#define VARNULL (u8)0 </code></pre> <p>RAMでこの<code>VARNULL</code>を格納していませんが、もちろん、これはFLASHでコードサイズが増加します:
- 25. なぜ '<<<'フィルタリングはgdbのnullバイトで、 '<()'はしませんか?
- 26. std :: optional <std :: reference_wrapper <T>> - それは問題ありませんか?
- 27. 下にある容器は何ですか?私はすでにそれを使用して動作しますが、私は本当にないんだけど</p> <pre><code>std::priority_queue<int, std::vector<int>, std::greater<int> > pq; </code></pre> <p>:
- 28. Swift <<, ><, <=< and > = <
- 29. コンパイラエラー `<<"
- 30. 'std :: vector <std :: basic_string <char>> *'から 'const std :: vector <std :: basic_string <char>>&'
サイズ0の特別な場合を作っています。他にはありません。 – Anirudha
何も悪いことはありません。 – Archimaredes
@Archimaredes、私は不安です。私はこれを試したときにMSVCの発砲を漠然と思い出しています。あなたは確信していますか? –