4

PHPを使用して、複数の数字がスペースで区切られた行を読み込もうとしています。最初に fscanf を使用してみましたが、問題は fscanf が一度に 1 行ずつ読み取るため、最初の番号しか読み取らないことです。どうしようか迷っています。

サンプル入力 20 30 -5987 456 523

4

3 に答える 3

8

この場合の最善のアプローチは、分解とファイルの読み取りを組み合わせて使用​​することです。ストラテジーは、最初は行全体を文字列として読み取ります。次に、explode を使用してすべての数値を配列に格納します。ただし、その場合、配列は後で文字列配列になり、配列要素のタイプを文字列から整数に変更できます。方法は次のとおりです

<?php
$_fp = fopen("php://stdin", "r");
fscanf($_fp, "%d\n", $count);
$numbers = explode(" ", trim(fgets($_fp)));
foreach ($numbers as &$number)
{
    $number = intval($number);
}
sort($numbers);
?>
于 2013-10-10T05:48:29.710 に答える