- ベストアンサー
C++で空Enterの入力を判断したい!!
空エンターで制御したい処理があるのですが、 char in[128]; gets(in); if(in[0]=='n') ↑の判定だとif文に中に入ってくれません。 入力なしでもOKな様にgetsを使ってみました。 (ちなみにこのinには値が入ることもあります。) enterの入力は改行コードが入るわけではないのでしょうか? その場合どのように判定すればいいのか教えてください! お願いします!!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ランタイムライブラリの仕様を確認しましょう VC++ですと getsで入力された文字列は最初の改行文字'\n'までがバッファに格納され '\n'を NULL文字の'\0'に変換する となっているようです 判定の方法として gets( buf ); if ( buf[0] == '\0' ) { // 空行の場合の処理 } といった具合でしょう
その他の回答 (2)
- koko_u_
- ベストアンサー率18% (459/2509)
回答No.2
>enterの入力は改行コードが入るわけではないのでしょうか? gets() は改行コードを保存しないようですね。 むしろ fgets() を使ったほうがよいでしょう。
質問者
お礼
改行コードは保存してくれないんですね・・。 ご回答ありがとうございました。
- yaemon_2006
- ベストアンサー率22% (50/220)
回答No.1
if(in[0]=='\n')
質問者
補足
ご回答ありがとうございます。 すみません・・入力間違いで・・\nでやってます・・。
お礼
教えていただいたようにnull文字で判定したら空行の処理を行ってくれました。 '\n'は'\0'に変換されてしまうとは知りませんでした。 とても勉強になりました。これからは仕様もよく確認してみます。 ご回答ありがとうございました。