• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:getcによる空白文字カウントでの問題)

getcによる空白文字カウントでの問題

このQ&Aのポイント
  • Windows98、BCC5.5及び、MinGWでコンパイルして実行する場合、/*注*/の1行をコメントアウトしますとその下のcountが画面に表示されません。
  • この問題は理解できないため、悩んでいます。
  • この問題についてご教授いただける方はいらっしゃいますか。

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

  • ベストアンサー
  • drmoreau
  • ベストアンサー率41% (33/79)
回答No.3

getcだけではなくて、ストリーム入出力の問題のようです。昔ディスプレイがなかった時代にラインプリンタに結果を出力していましたが、その時代のなごりだと聞いたことがあります。プリンタの印刷開始の合図として改行コード(0x0a)を送っていたらしいです。 以前プログラマの仕事をしていたときに、先輩のプログラマが、 printf("\nメッセージ"); という書き方をしていたので、聞いてみたところこのような現象を回避するためだと説明されたことがあります。 前回の回答でBUGと書きましたが、BUGというより古い仕様というのが正しいのかもしれません。

jasmine002
質問者

お礼

 ストリームの問題なのですね。ぼんやりとその辺のことを感じて いましたが、ご経験談をお聞きしましてはっきりとしました。  今回の件ではいろいろと勉強させていただき感謝しています。 どうもありがとうございました。

その他の回答 (2)

  • drmoreau
  • ベストアンサー率41% (33/79)
回答No.2

失礼しました。Windows98を見落としていました。 0x0aを出力しないと、画面出力がうまくいかないようです。 はっきりしたことはわかりませんが、ストリーム入出力のBUGがXPで修正されたのではないですか。

jasmine002
質問者

お礼

 やはり98では同じような現象が起こることを知りやっとワンス テップを通過できました。ありがとうございます。  getcの中身は知らないのですが、単純に一文字入力と考えてい ましたが、結構デリケートな問題があるようですね。getcにEOF 検出をさせること自体がひょっとして使い方をあやまっているの ではないかと思うようになりました。  どうもありがとうございました。

  • drmoreau
  • ベストアンサー率41% (33/79)
回答No.1

特別間違いはありません。 Borland C コマンドライン版&DOS窓では問題なく動いています。

jasmine002
質問者

お礼

フォローありがとうございます。コマンドラインからのコンパイル実行も IDEツールからの実行も変わりなく、Windows98での結果はすべてだめでし た。  ただいろいろと考えた末、ぼんやりと原因が分かってきたような気もし ます。ひょっとしますとgetc 関数の基本的な動作について大きな誤解を していたかもしれません。  それで問題なく動いています、といいますのはWindows98ですね。 XPやLinuxで問題なく動くのは確認していますので、、、。

関連するQ&A

専門家に質問してみよう