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

をしたいのです。
例えばchar string[100];
にscanf("%s",string);
としたのですが、%sではスペースまでしか
読み込まないみたいです。
どうしたらよいでしょうか?
お願いします。
c=getchar()も試そうとしましたが、よくわかりません。
標準入力を確定するにはcontrol+Dでしょうか?
お願いします。

A 回答 (2件)

#1の人の様にfgetsを使いましょう。

getsも使えますが、バッファのサイズに限りがあるので、fgetsを使った方が安全です。
なお、
getsは、¥n(改行コード)を捨てますが、
fgetsは、¥nを捨てません。

gets 及び fgets は、改行コード(エンター)で確定します。(エンターを押す前は、バックスペースとかできます)
標準入力からの入力の終了には、
windowsだったらCTRL+Zです。
たしか、UNIX系だったらCTRL+D
だったと思います。
その場合getsなどはNULLを返してきます。
エラーの場合もNULLになるので、ファイルの終わりを調べるには
feof()を使います。
また、
例えば、
<END>など、特殊な文字列を終了記号として用いるのも1つの方法かと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
助かります。

お礼日時:2004/09/19 10:35

fgetsを使用するのはどうでしょうか?



char str[256];

fgets(str, 256, stdin);
printf("%s\n", str);

こんな感じです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2004/09/19 10:35

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