如何在 php 中读取两个中间带有 space 的整数?
How to read two integer with a space in between, in php?
我正在尝试读取如下所示的整数,
6
1
2 5
2 7
2 9
1
1
我想读取一个整数,它跟在数字 2 之后,中间有 space。但我无法阅读它。我试过如下。
$i = 0;
while($i<10){
fscanf(STDIN, "%d %d", $arr[$i]);
// I have tried fscanf(STDIN, "%d\t%d", $arr[$i]); this too.
$i++;
}
print_r($arr);
输出为:
[0] => 6
[1] => 1
[2] => 2
[3] => 2
[4] => 2
[5] => 1
[6] => 1
但我的预期输出是:
[0] => 6
[1] => 1
[2] => 2
[3] => 5
[4] => 2
[5] => 7
[6] => 2
[7] => 9
[8] => 1
[9] => 1
我也试过下面的方法也不行。
while(fgets(STDIN)){
echo $i++;
echo "line: $f";
}
读取两个输入时必须添加两个变量
$handle = fopen('users.txt', "r");
$i = 0;
$result = array();
while($i<10){
fscanf($handle, "%d\t%d",$arr[$i],$arr1[$i] );
$counter = count($result);
$result[$counter] =$arr[$i];
if(!empty($arr1[$i])){
$counter = count($result);
$result[$counter] =$arr1[$i];
}
$i++;
}
echo "<pre>"; print_r($result);
users.txt
文件包含
6
1
2 5
2 7
2 9
1
1
另一种在 运行 时间获取输入的方法。
$arr = array();
$i = 0;
while($i<20){
fscanf(STDIN, "%d\t%d",$arr[],$arr[]);
$i++;
}
print_r(array_filter($arr));
希望这对从运行时获取输入值有用。
在上面的输出中跳过白色 space 的更简洁的方法是
while($array = fscanf(STDIN, "%d\t%d")){
//fscanf(STDIN, "%d %d",$arr[],$arr[]);
//$i++;
list($var1,$var2) = $array;
echo $var1;
echo $var2;
}
输出:
6125272911
我正在尝试读取如下所示的整数,
6
1
2 5
2 7
2 9
1
1
我想读取一个整数,它跟在数字 2 之后,中间有 space。但我无法阅读它。我试过如下。
$i = 0;
while($i<10){
fscanf(STDIN, "%d %d", $arr[$i]);
// I have tried fscanf(STDIN, "%d\t%d", $arr[$i]); this too.
$i++;
}
print_r($arr);
输出为:
[0] => 6
[1] => 1
[2] => 2
[3] => 2
[4] => 2
[5] => 1
[6] => 1
但我的预期输出是:
[0] => 6
[1] => 1
[2] => 2
[3] => 5
[4] => 2
[5] => 7
[6] => 2
[7] => 9
[8] => 1
[9] => 1
我也试过下面的方法也不行。
while(fgets(STDIN)){
echo $i++;
echo "line: $f";
}
读取两个输入时必须添加两个变量
$handle = fopen('users.txt', "r");
$i = 0;
$result = array();
while($i<10){
fscanf($handle, "%d\t%d",$arr[$i],$arr1[$i] );
$counter = count($result);
$result[$counter] =$arr[$i];
if(!empty($arr1[$i])){
$counter = count($result);
$result[$counter] =$arr1[$i];
}
$i++;
}
echo "<pre>"; print_r($result);
users.txt
文件包含
6
1
2 5
2 7
2 9
1
1
另一种在 运行 时间获取输入的方法。
$arr = array();
$i = 0;
while($i<20){
fscanf(STDIN, "%d\t%d",$arr[],$arr[]);
$i++;
}
print_r(array_filter($arr));
希望这对从运行时获取输入值有用。
在上面的输出中跳过白色 space 的更简洁的方法是
while($array = fscanf(STDIN, "%d\t%d")){
//fscanf(STDIN, "%d %d",$arr[],$arr[]);
//$i++;
list($var1,$var2) = $array;
echo $var1;
echo $var2;
}
输出:
6125272911