我正在尝试扫描整行,但我的代码只占用第一个字符,然后跳转到下一行。这是我正在尝试做的事情:
<?php
$n_matrix_val=4;
for ($y = 1; $y <= $n_matricx_val; $y++) {
fscanf(STDIN ,"%s\n", $the_matricx_val);
fwrite(STDOUT, $the_matricx_val);
}
我的意见是:
5 8 9 7
3 4 9 8
1 5 4 9
3 2 7 6
我的出局是:
5313
我是新手,我正在尝试解决小问题请帮忙
答案 0 :(得分:3)
你的模式错了。试试这个。
$n_matrix_val = 4;
for ($y = 1; $y <= $n_matrix_val; $y++)
{
$the_matricx_val = fscanf(STDIN, "%s %s %s %s");
fwrite(STDOUT, implode(' ', $the_matricx_val) . PHP_EOL);
}
但是如果你想阅读整行,只需使用fgets
。
$the_matricx_val = fgets(STDIN);
fwrite(STDOUT, $the_matricx_val);
答案 1 :(得分:0)
使用"%[^\n]s"
获取整行:
$n_matricx_val=4;
for($y=1;$y<=$n_matricx_val;$y++)
{
fscanf(STDIN ,"%[^\n]s", $the_matricx_val);
fwrite(STDOUT, $the_matricx_val . "\n");
}
答案 2 :(得分:0)
你也可以这样做:
<?php
$i=trim(fgets(STDIN));
?>
此代码将为您提供全线。