4

我正在尝试使用 php 读取多个数字用空格分隔的行。最初我尝试使用 fscanf 但问题是,由于 fscanf 一次读取一行,它只读取第一个数字。我很困惑该怎么办。

样品输入 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 回答
0
$input = trim(fgets(STDIN));
$arr = explode(" ", $input);      
foreach($arr as &$number){
    $number = (int)$number;
}
于 2014-11-26T12:01:24.380 回答
0

如果您想从“fopen”函数用户“trim”函数或使用 trim 函数环绕变量中消除空格。例子 :

echo "Please enter series limit : ";
$handles = fopen ("php://stdin","r");
$n = trim(fgets($handles));

所以在这里我们可以删除字符之间以及末尾的空格。

于 2017-01-14T18:52:05.393 回答