0
0

PHPとPythonの比較勉強ー複数行にわたる入力 (paizaランク D 相当)

Posted at

PHPを仕事であんまり使わなくなって今Pythonをやっているんですよね。
で、やらなくなっているとなんというか腕が鈍ってしまったりしまして。
それだとだめだなと思ったので今年から1日1回はPHPも解くようにしました。

ひとまずPythonで書いてみます


n = int(input())
for _ in range(n):
 print(input())

簡単ですね。
では次にPHP

<?php
    $n = fgets(STDIN);
    for ($i=1; $i<=$n; $i++){
        print(fgets(STDIN));
    }
?>

一応正解はしたのですが。
fgets(STDIN)で取得したものはtrimしないといけないみたいです。
なんでなのか調べたら、どうやら、入力されたときの改行を除去するため、という
意味があるそうです。
問題文にも「改行区切りで与えられるので、、、」というのがありますね。
だから改行を取り除くためにはtrimが必要ということだそうです。
しかし、出力をみてみるとそもそも改行区切りになっているので、このままでも
問題なさそうです。(最初の$nはだめだと思うけど)

念のため改行をtrimでとったあとに改行を付けて出力する場合

<?php
    $n = trim(fgets(STDIN));
    for ($i=1; $i<=$n; $i++){
        $a = trim(fgets(STDIN));
        print($a . "\n";
    }
?>

ちなみにSTDINの意味はstandard inputの略で、えすてぃーでぃーあいえぬと呼ぶらしいです。
ええ。。。。なんとなく読みづらいですね。。。
標準入力なんですけど、たとえばコマンドでなにか入力してEnter押すと動くやつがありますが、あのときの入力が標準入力です。もちろんその逆もあり、Enterを押した後出てくるのがそれで、標準出力(STDOUT)ですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0