• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Emacs端末上で、Cプログラムが適切に動作しない)

Emacs端末上で、Cプログラムが適切に動作しない

このQ&Aのポイント
  • EmacsのシェルモードでCygwinのgccを使用してCプログラムをコンパイルしようとすると、プログラムが正常に動作しない問題が発生しています。
  • 作成したプログラムがEmacsのシェルモードで実行されると、出力操作が全ての入力操作の後に行われるため、正しい結果が表示されません。
  • 同様の問題は、Emacsのシェルモードを使用してCプログラムを実行するだけでなく、他の端末上でも発生します。解決策を求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

症状からするとstdoutのバッファリングの問題だと思いますのでprintf()の後にfflush(stdout)するなり、(printf()より前に)setbuf()やsetvbuf()でstdoutのバッファリングモードをバッファリングなしに変更するなどしてみてください。

MetalLover
質問者

お礼

御回答ありがとうございます。 setbuf()やsetvbuf()といった関数があるなんて知りませんでした。 これらの関数をググって、使ってみると、プログラムが適切に動作するようになりました。 wormholeさん、プログラミングの熟練者さんですね。 すごいと思います。 僕はソフトウェア開発の仕事に携わることになったので、 プログラミングについて必死に勉強しています。 これからも、自分で解決できない問題がありましたら、OK Waveで質問させて頂きたいと思います。 恐縮ですが、その時は是非、よろしくお願い致します。 本当にありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

解決策は #1 で終わってます (というか, これ以上は手の出しようがない) が, 念のため補足しておくと stdout では「改行が出力されない場合」に表示されることは保証されていません.

関連するQ&A