問題タブ [stdio]
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 - stdio ファイル書き込み関数からの戻り値を処理するための適切なプログラミング パターンは何ですか?
私は多くを生成するいくつかのコードに取り組んでいます
g ++でコンパイルすると警告が表示され、多数の個別の順次fwrite
sの戻り値を実際に記録して処理するための最良のプログラミングパターンについて疑問に思っています(つまりfwrite
、ループでは同じではありません)
現時点でコードが次のようになっているとします。
現在、次のようなことを考えていますが、ファイル ポインターをクリーンアップするのが難しい場合があります。
このアプローチは、入れ子にするよりも明らかに優れていると思います。
とはいえ、この種のベスト プラクティス パターンは既に確立されているのではないでしょうか?
もちろん、コンパイラの警告を取り除くためにこれを主に調べているので、戻り値をダミー変数に割り当てて無視することもできますが、最初は正しい方法で試してみたいと思います.
更新:このコードは実際には g++ を使用してコンパイルされた c であるため、c++ タグを削除しました。そのため、コード ベースの残りの部分を維持するには、c ベースのソリューションが必要です。
c - Cからのstdinとstdoutの再ルーティング
stdin
およびstdout
(そしておそらく私stderr
がそこにいる間に)ファイルハンドルを再度開いて、ファイルへの、printf()
またはputchar()
ファイルputs()
への今後の呼び出し、およびファイルへの今後の呼び出しgetc()
などがファイルから行われるようにします。
1)標準の入出力/エラーを永久に失いたくない。プログラムの後半でそれらを再利用したいと思うかもしれません。
2)新しいファイルハンドルを開きたくないのは、これらのファイルハンドルを大量に渡すか、グローバル(シャダー)で渡す必要があるためです。
open()
3)どうしようもないのならfork()
、システムに依存する機能を使いたくない。
したがって、基本的に、これを行うのは機能しますか?
そして、もしそうなら、どうすれば元の値をstdin
取り戻すことができますか?に保存して、FILE *
後で元に戻す必要がありますか?
c - scanf による入力の空白スペースの抑制
改行を抑制するには、%[^\n] を使用します。入力で空白をスキップする形式、つまり「ハロースタックフロー」を入力する必要がある場合はどうすればよいか教えてください。fgets と gets は知っていますが、使用したくありません。問題が発生しています。
c++ - "\n" で std::cout のフラッシュを停止できますか?
この投稿によると、 std::cout は\n
、対話型デバイス (ターミナル ウィンドウなど) に接続されると、自動的にフラッシュします。.flush()
それ以外の場合 (たとえば、ファイルにパイプされる場合)、完全にバッファリングされて動作し、またはでのみフラッシュされstd::endl
ます。
Microsoft Visual C++ でこの動作をオーバーライドして、完全にバッファー モードにするか行バッファー モードにするかを選択できるようにする方法はありますか?
.net - 管理対象の System.IO.FileStream の基になる stdio FILE* を取得する方法は?
メソッド "bar" が通常の stdio FILE* を取る C/C++ ライブラリ用の .NET アダプターを作成しています。マネージド コード ユーザーがマネージド (ファイル) ストリームを渡すことができるようにインターフェイスを構築することは可能ですか? つまり、データをパイプするための中間バッファーとコードを作成する必要はありません。また、bar() が読み取りを行うという仮定は、物事をより良くするだけですか?
c - FILEからの(開いた)ファイル名の決定*
stdioFILE *
ポインターが与えられた場合、(開いた)ファイルの名前を見つける方法はありますか?
c++ - 両方を含めるための正しい順序と?
たとえば、システム固有の関数を使用する必要があります( POSIX標準に従ってftello()
定義されています)。stdio.h
また、標準の C++ 機能も使用する必要があります。たとえば、 ( ISO C++ 標準に従ってstd::sprintf()
で定義されています)。cstdio
私の知る限り、非標準 C++ のものを定義するだけで<cstdio>
は保証されないため、両方を含める必要があると思います。私はずっと前に、(たとえば) gcc ではインクルード ファイルの順序に問題がある可能性があることを読みました。
<cstdio>
では、 と の両方を含める正しい順序は何<stdio.h>
ですか? 可能な限りクロスプラットフォームのソリューションを探しています (少なくとも gcc、suncc、intel C++/linux、および mingw の場合)。
ruby - $ deferr、$ defoutはどのような目的であり、$definがない理由
$ deferr、$ defoutはどのような目的で使用され、$ stderr、$ stdout、$ stdin、およびSTDIN、STDOUT、STDERRがある場合に$definが存在しないのはなぜですか。
それらのいずれかを変更しても、他は変更されません
c++ - 標準ライブラリでコンパイル エラーが発生します。調子はどう?
特定されていないソフトウェアをコンパイルしようとしていますが、stdio.h
. エラーは、ほとんどの場合、 などの宣言されていない識別子_In_
です。IntelliSense は、それらの定義を適切に検出します。この原因をどのような一般的な方向で探す必要がありますか?
追加: たとえば、1 つの cpp ファイルstdio.h
には最初に含まれるファイルがあります。その前に確認できる定義はありません。プリコンパイル済みヘッダーは使用されません。私のインストールの他のものは問題なくコンパイルされます。
c++ - C++でファイルの先頭へのポインタを取得する方法
C ++で、開いているファイルの先頭へのポインターを取得して、ファイルのサイズと一緒にUNIX書き込み関数に渡すことができるようにすることはできますか?
明確にするために、ファイル全体を書き込みのような関数に渡したいのですが、これを行うにはどうすればよいですか?