1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[PHP][paiza]入力データを自前で用意する

Last updated at Posted at 2023-04-26

はじめに

paizaはブラウザ上でもエラーコードを出力してくれたり標準入力の内容をいじれるようになっているが、提出したコードのデータを手元に置いておけた方が見返したり他の課題に使える内容を流用しやすいのでVScode上で書いていこうと思ったのがきっかけ。

標準入力のデータを自分で用意しよう!みたいな記事がパッと見なかったので、今まで

$data = [
  [1 0 2],
  [2 3 1]
];

みたいなのを手書きでやっていたがさすがに手間だったからここを楽にしたかった。

B級程度の問題解いていくなら全部二元配列化しちゃった方が書き方統一できて簡単なのでそこも併せて。
初心者だし回答速度、実行速度は気にしない方針でいく。

VScodeではF5で実行してデバッグコンソールに出力。

二元配列にしている都合上、縦1列のデータでi行目の値を取りたい場合でも
$arr[i-1][0]
で指定する必要があることだけ注意したい。

準備

default.php
data.txt
を同じファイル内に作成する。

コード

default.php
<?php
//VScode上のみで扱う
$file_path = "./data.txt";
$STDIN = fopen($file_path, "r");

//提出するときは$STDINをSTDINに修正する
while ($std = trim(fgets($STDIN))) {
  $arr[] = $std;
}

foreach ($arr as &$element) {
  $element = explode(' ', $element);
};

//出力の確認とfclose
print_r($arr);
fclose($STDIN);

?>

確認

テストデータの作成

data.txt
test
10 11
20 21
30 31

出力

デバッグコンソール
Array
(
    [0] => Array
        (
            [0] => test
        )

    [1] => Array
        (
            [0] => 10
            [1] => 11
        )

    [2] => Array
        (
            [0] => 20
            [1] => 21
        )

    [3] => Array
        (
            [0] => 30
            [1] => 31
        )
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?