我正在尝试解决您编写脚本然后得到的问题:
我想检查用户输入的数量,然后确定执行了哪些代码。
像这样的东西:
if(fscanf(STDIN, '%d%d%d%d%d', $a, $b, $c, $d, $e) == 5) {
echo "Five inputs";
} elseif(fscanf(STDIN, '%d', $a) == 1) {
echo "Only one input";
}
因此,如果您得到例如输入 1 2 3 4 5 它应该回显“五个输入”但如果您只得到 0 它应该回显“只有一个输入”。
您的代码有几个问题。第一个是您使用 扫描%d%d%d%d%d
,这是寻找一个连续的数字,您至少必须在那里有空格来分隔值。第二个是如果失败,它会再次要求输入以进行单输入检查。
此代码从输入中读取一行,然后将其(使用explode()
)拆分为多个部分。中间位只检查数值,如果需要,您可以调整它。然后最后一部分只是检查有多少部分(使用count($inputs)
)并输出适当的消息。
$input = fgets(STDIN);
$inputs = explode(" ", $input);
// Check numeric
foreach ( $inputs as $index => $check ) {
if ( !is_numeric($check) ) {
echo "Input $index is not numeric".PHP_EOL;
}
}
if(count($inputs) == 5) {
echo "Five inputs";
} elseif(count($inputs) == 1) {
echo "Only one input";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句