• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:fgets()関数で画面入力)

fgets()関数で画面入力

このQ&Aのポイント
  • C言語のfgets()関数を使用して、画面からのユーザー入力を受け取るプログラムです。
  • Windows7では正常に動作しますが、CentOSでは入力された値が表示されません。
  • 原因は不明ですが、他のコンパイラやエラーも確認されていません。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

CentOS 6.5にPoderosa 4.3.8bで接続して試しました。 [user@localhost ~]$ ./a.out type your message >>>> 1234 typed : 1234 [user@localhost ~]$ ってコトで正常に動作していますが……。 それなら…と、送信改行コードをCR+LFにしてみました。 [user@localhost ~]$ ./a.out type your message >>>> test typed : [user@localhost ~]$ fgets()の直後に printf("len=%d\n", strlen(msg)); を入れてコンパイル。送信改行コードをCR+LFにして実行してみました。 [user@localhost ~]$ ./a.out type your message >>>> test len=1 typed : [user@localhost ~]$ 送信改行コードをLFに設定し、入力待ちになってから送信改行コードをCR+LFに換えてみました。 [user@localhost ~]$ ./a.out type your message >>>> test len=5 typed : test [user@localhost ~]$ とりあえずの実験結果です。

freeradical
質問者

お礼

凄いです。直りました。 ありがとうございました。

freeradical
質問者

補足

Poderosa 4.1.0を使っています。 改行コードがCR+LFになっていました。 CRまたはLFで実行すると、 正常に結果が返るようになりました。 $ ./promptTest type your message >>>> test typed : test $

その他の回答 (1)

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

CentOS は手元にないので実験できないんだけど, たとえば msg[strlen(msg) - 1] = '\0'; の行を取り除いたらどうなるんでしょうか?

freeradical
質問者

お礼

ありがとうございます、。

freeradical
質問者

補足

typed : の後が改行されます。 こんな風に $ ./promptTest type your message >>>> test typed : $

関連するQ&A

専門家に質問してみよう