• ベストアンサー

標準入力から文字列配列に格納

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

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1の人の様にfgetsを使いましょう。getsも使えますが、バッファのサイズに限りがあるので、fgetsを使った方が安全です。 なお、 getsは、¥n(改行コード)を捨てますが、 fgetsは、¥nを捨てません。 gets 及び fgets は、改行コード(エンター)で確定します。(エンターを押す前は、バックスペースとかできます) 標準入力からの入力の終了には、 windowsだったらCTRL+Zです。 たしか、UNIX系だったらCTRL+D だったと思います。 その場合getsなどはNULLを返してきます。 エラーの場合もNULLになるので、ファイルの終わりを調べるには feof()を使います。 また、 例えば、 <END>など、特殊な文字列を終了記号として用いるのも1つの方法かと思います。

Judau_MSZ-010
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

fgetsを使用するのはどうでしょうか? char str[256]; fgets(str, 256, stdin); printf("%s\n", str); こんな感じです。

Judau_MSZ-010
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A