C言語の標準入力
こんにちは壁紙です
Pythonを始めてみようと思ってPiazaに登録したんですが、チュートリアルが意外とポイントが多い問題。
標準入力で得た値を表示しよう!
うっかり問題のウィンドウを更新してしまったので原文は分かりませんが、要求の旨は以上です。
え?簡単やん。
カタカタカタ...タンッ
#include <stdio.h>
int main(void){char in[1000];
scanf("%s", in);
printf("\n%s", in);
return 0;
}
これでよさそうなんですが、なぜかダメだしを食らいます。
ページの隅から隅までよく見てみるとテスト用の文字列が「Welcome to Paiza」になっています。
ん?スペースが入るのか。
ならばスペースやタブなどを飛ばして読み込む性質のあるscanfは使えないことになります。
私はscanf以外をCでは使いませんので、模範解答を見てみるとfgetsを使っていました。
fgetsってファイルの読み込みだけでなく、「stdin(標準入力)」に設定するとキーボードからの入力も受け付けてくれます。
fgets万能ですね。
以下がfgetsを実装したコード。
#include <stdin.h>
int main(void){
char in[1000];
fgets(in, sizeof(in), stdin);
printf("\n%s", in);
return 0;
}
今度はOKでました。
入門書に従ってずっとscanfに頼っているといいことがないですね…
今後はfgetsをできるだけ活用していきたいです。