プロが教えるわが家の防犯対策術!

C言語でifやswitch文の条件式でキーボード入力からの複数文字列(char型)に対して条件分岐をしたいのですが、どなたか具体例を教えていただけないでしょうか?またscanfでキーボード入力を読み込む場合、Enterを押さないと実行されませんが、Enterを押さないでもいい関数や方法があれば教えて下さい。宜しくお願いします。

A 回答 (2件)

>複数文字列(char型)に対して条件分岐をしたいのですが、



char buf[10];
scanf("%s", buf);
if ( buf == "hello" ) { ... }

みたいなコトがしたいのでしょうか?

if ( strcmp(buf, "hello") == 0 ) { ... }

とかで我慢して下さい。
    • good
    • 2
この回答へのお礼

まさにこれです!ありがとうございます!

お礼日時:2007/10/20 00:24

★アドバイス


>C言語でifやswitch文の条件式でキーボード入力からの複数文字列(char型)に
>対して条件分岐をしたいのですが、
>どなたか具体例を教えていただけないでしょうか?
 ↑
 ちょっと意味が分かりません。
 何を質問しているの?
>またscanfでキーボード入力を読み込む場合、
>Enterを押さないと実行されませんが、
>Enterを押さないでもいい関数や方法があれば教えて下さい。
 ↑
 Windows 環境では conio.h で getch、getche という関数が用意されています。
 この関数は getchar 関数と同じく1文字を取得します。
 でも Enter キーを押さずに1文字入力されるとそく呼び出し側に制御を戻します。
 これを使って文字列の入力ルーチンを構成して下さい。
 そうすれば scanf で Enter キーを押さなくてもキーボード入力を1文字ずつ
 読み込むことが可能です。
・Unix 系の環境では conio.h がないため getch、getche 関数を利用できません。
 同等の仕組みをご自分で作り上げて下さい。
 Unix 系にはあまり詳しくありませんが実現可能なことだけは知っています。
 ネット検索すればサンプルなどが見つかると思います。
 ちょっと『unix getch』キーワードで検索してみたら次の1行を見つけました。
>Unix/Linuxには、cursesライブラリがありこの中の機能にgetch()などがあります。ただあまり好まれません。;_;
 ↑
 使えるみたい。
・以上。参考に。

参考URL:http://i2lab.net/xp/fwki/index.cgi?page=%A5%AD%A …
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。Unixなのでちょっと頑張ってみます。

お礼日時:2007/10/21 04:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!