僕は、プログミングをこれから始めてみようと思っている方には「Progate」と「Paiza」をオススメしています。
しかし、Paizaの問題を解こう!となったとき
ん?何これ?
ってなるのがfgets(STDIN)という謎の記述です笑
今回はfgets(STDIN)についてざっくり解説します!
この記事を見れば、Paizaの問題集をどんどん進められるようになりますよ!!
1. とりあえず結論
fgets(STDIN)という記述をするということは
データを取得することができる
ということなんですよね!
、、、これだと意味がわからないと思いますので、具体例を用いて説明します!
2. 具体例
例えば、あなたは今からカレーを作ろうとしています。
そこでまずやることはなんでしょうか??
そうです、
ジャガイモとにんじんと玉ねぎを冷蔵庫から取ってくる
ですよね!
材料がないと料理(処理)を始めることができません。
fgets(STDIN)はこれと同じと思ってもらえるとイメージしやすいのではないかなと。
仮に、
1 + X(エックス)
という処理をプログラムで書こうとするとき、このXにあたる部分の材料(データ)を取ってこないと処理ができません。
なぜなら、手元にはXという材料(データ)がないからです。
もし、このXが数字の「3」だったとしたら、こんな感じのプログラムを書くことになります!!
<?php
//fgets(STDIN)で3という数字を取得し、$xに代入する。
$x = fgets(STDIN);
//やりたい処理が「1 + X」の場合
$answer = 1 + $x;
//echoを使って答えを出力
echo $answer;
このコードの実行結果はこちら
4
3. 入力値とは?
もうお気づきかと思いますが、念のため補足説明しておきます!!
Paizaで出てくる「入力値」ってやつですが、
これは上の例でいうところの
ジャガイモとか、にんじんとか、玉ねぎ
のことです。
つまり材料(データ)です。
これがないと料理(処理)ができない、ということです。
fgets(STDIN)で取得できる材料(データ)は問題によって異なります!
「どの材料を取得するか」というのは、システムの裏側で設定してるので、あまり深く考えず、「とりあえずfgets(STDIN)して材料を取ってくる」くらいの感覚でいいと思います^^