問題タブ [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.

0 投票する
2 に答える
6008 参照

c++ - C-printfおよびscanf-入力を終了するにはどうすればよいですか?

私はCで書かれた単純なアプリケーションに取り組んでいます。Unix環境で働いています。

私のアプリケーションはいくつかの単純なI/Oを実行しています。printfを使用してユーザーに入力を求め、scanfを使用してその入力を取得します。

問題は、値を入力した後、続行する準備ができていることをアプリケーションに伝える方法がわからないことです。'enter'と入力すると、意味のある改行'\n'が提供されます。Control-dは、scanfが私の入力をキャプチャすることを許可しますが、後続のscanf命令を無視しているようです。

誰かが私を助けることができますか?

0 投票する
2 に答える
693 参照

c - Linuxでfgetsがより長いread()呼び出しを発行するようにする

を使用して、かなり大きな行 (最大 128K) のテキストを読んでいますfgets。サーバーで過度のコンテキスト切り替えが発生しています。strace次のように表示されます。

つまりfgets、一度に 4096 バイトのチャンクを読み取ります。fgetsを呼び出すときに大きなチャンクがどのように使用されるかを制御する方法はありますread()か?

0 投票する
4 に答える
7908 参照

java - System.out、stdout、および cout はまったく同じものですか?

System.out、stdout、および cout は、それぞれ Java、C、および C++ でまったく同じものですか?

同じものに 3 つの異なる名前があるのはなぜですか (特に、C、C++、および Java に多くの共通点がある場合)。

また、それらが何に使用されているかは知っていますが、ボンネットの下で正確に何を意味するのでしょうか?

0 投票する
4 に答える
2718 参照

c - Cの文字配列の最後の「単語」を読み取る方法に関するヒント

正しい方向に向けられることを探しているだけです:

Cプログラムへの標準入力があります。一度に各行を取り込み、char[]に格納しました。

char []ができたので、最後の単語(スペースで区切られていると仮定)を取得して小文字に変換するにはどうすればよいですか?

私はこれを試しましたが、プログラムがハングします:

提案されたものを取り入れてこれを思いついたのですが、これを行うためのより効率的な方法はありますか?

0 投票する
2 に答える
42843 参照

c++ - すべての部分文字列の出現箇所と場所を見つける

テキストファイルとして保存されたデータを解析するプログラムを書いています。私がやろうとしているのは、干し草の山にあるすべての針の位置を見つけることです. 私はすでにファイルを読み込んで出現回数を判断できますが、インデックスも探しています。

0 投票する
4 に答える
9377 参照

c - c言語でのwhileループ内のfscanfの問題

ファイルを1行ずつ読み取ろうとしていますが、無限ループが発生しています。どこが間違っているのでしょうか。

0 投票する
6 に答える
793 参照

c++ - CでエレガントなバイナリI/O?

私は最近、C/C++ を使用して多くのバイナリ ファイルを読み込んでいますが、それがどれほど洗練されていないかに悩まされています。次のような多くのコードを取得します(その後、先に進みました):

または、ローカルのパック構造体を定義して、一定サイズのブロックを簡単に読み取れるようにします。ただし、このような単純な問題、つまり、指定されたファイルをメモリに読み込む場合は、より効率的に、より読みやすい方法で実行できるように思えます。ヒント/コツなどはありますか?これを処理するためのライブラリや何かを探しているわけではないことを明確にしたいと思います。自分のファイルを設計していて、ファイルの仕様を大幅に変更しなければならないとしたら、と思うかもしれませんが、今のところはスタイル上の答えを探しているだけです。

また、私はmmapmmap が大好きです! 私はそれをよく使用しますが、問題は、標準入出力を使用する場合には実際には存在しない、整列されていないデータ型を処理するための厄介なコードにつながることです。最終的には、メモリから読み取るための stdio のようなラッパー関数を作成することになります。

ありがとう!

編集:ファイル形式を変更できないことも明確にする必要があります。読み取る必要があるバイナリ ファイルがあります。別の形式でデータを要求することはできません。

0 投票する
3 に答える
2701 参照

visual-c++ - ライブラリが指定されていませんが、printf は C++ プログラムにリンクされていますか?

次のコードがあります。

Windows 7 x86 で MSVC++ 10.0 を使用して、次のようにコマンド ラインでコンパイルします。

これにより simple.exe が生成され (コンパイラは自動的にリンカーを呼び出します)、実行可能ファイルは期待どおりに "hello world" メッセージを表示します。depends.exe を使用して実行可能ファイルを調べると、kernel32.dll が唯一の依存関係として表示されます。kernel32.dll ライブラリのコンテンツをダンプすると、printf が表示されません。

VC++ はある種の最適化を採用しているので、printf は最終的な実行可能ファイルに何らかの方法で直接含まれていますか? もしそうなら、どのように、そしてそれはどこかに文書化されていますか?

0 投票する
5 に答える
433 参照

c++ - C stdio ライブラリと比較して、C++ iostream は何を提供する必要がありますか?

重複の可能性:
C++ コードで使用している I/O ライブラリはどれですか?

別の質問へのコメントでこの質問をしたところ、代わりに適切な質問にするように求められました。

stdio の代わりに iostream を使用したいのはなぜですか? より具体的には、std::getline は C の同等物よりも何を提供する必要があるのでしょうか?

言語バッシングはやめてください。

0 投票する
4 に答える
1927 参照

linux - Linuxでfprintfをブロックするにはどうすればよいですか?

fprintfシステムが IO ビジーでありながら CPU が大量にある場合、約 10 秒間不当にブロックされる呼び出しがあります。基になるストリームもsetvbuf、基になる fd を で開いたこともありませんO_DIRECT。これは、ストリームに stdio ストリームとシステム キャッシュの両方があることを意味します。

fprintfどうすればこんなに長い間通話がブロックされるのかわかりません. write(2)基になるストリームのストリーム バッファがいっぱいになるという最悪のケースでは、libc は単にバッファの内容をディスクに書き込むために呼び出すだけだと思います。しかし、私の知る限り、write(2)で開かれていない fdO_DIRECTでは、ディスク転送を待機しません。つまり、ディスク IO に関しては非同期です。したがって、時間のかかる作業は、書き込まれたデータに対してカーネルがキャッシュを割り当てることだけだと思いますが、システムがメモリ不足の場合でも、これは 10 秒の作業とは思えません。実際、システムには数十 MB の空きメモリと数 GB のメモリがキャッシュされています。

何かアドバイスはありますか?

ありがとう。