Paizaで使える標準入力の取得
PaizaではDランク〜Sランクまでのプログラミング問題が解けます。対応言語もPHP、Javascript、Python、Swiftなど多いので自分の得意な言語で挑戦できます。私はPHPで問題を解いていますが、単一行や複数行で渡される標準入力を取得するコードを毎回書くのがめんどくさいのでコピペ用にメモしておきます。
標準入力が一行の場合
<?php
// 標準入力からの入力値を変数に代入します
$single_line_input = fgets(STDIN);
// 取得した入力値を半角スペースで分解します
$array = explode(" ", $input_line);
// 単一行の入力の場合はこれだけで各入力値が配列の要素として使えます
<?php
// 標準入力からの入力値を変数に代入します
$single_line_input = fgets(STDIN);
// 取得した入力値を半角スペースで分解します
$array = explode(" ", $input_line);
// 単一行の入力の場合はこれだけで各入力値が配列の要素として使えます
Paizaでは自分の環境でテストを行うことが推奨されているようです。テスト時にstdin.txt
というファイルから入力を得るとすると次のようになると思います。
<?php
// ファイルパスの指定
$file = fopen(".../path/to/stdin.txt", "r");
// ファイル内容の読み込み
$single_line_input_line = fgets($file);
// 入力値の分解
$array = explode(" ", $input_line);
// ファイルパスを閉じる
fclose($file);
標準入力が複数行の場合
1行ずつ代入するっていうのがちょっとめんどくさいですね。
<?php
// 標準入力を一行ずつ配列に代入します
while ($line = fgets(STDIN)) {
$tmp[] = trim($line);
}
// 配列の各要素をさらに分解します
foreach ($tmp as $key => $value) {
$array[] = explode(" ", $value);
}
自分の環境でテストする場合
<?php
// ファイルパスの指定
$file = fopen(".../path/to/stdin.txt", "r");
// ファイルの内容を一行ずつ配列に代入します
if($file) {
while ($line = fgets($file)) {
$tmp[] = trim($line);
}
}
// 配列の各要素をさらに分解します
foreach ($tmp as $key => $value) {
$array[] = explode(" ", $value);
}
// ファイルパスを閉じる
fclose($file);
Author And Source
この問題について(Paizaで使える標準入力の取得), 我々は、より多くの情報をここで見つけました https://qiita.com/one-kelvin/items/09068b8971c4da509cd3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .