【发布时间】:2019-03-05 19:36:39
【问题描述】:
我正在使用来自 STDIN 的输入
第一行是我存储在 $t 中的数字
fscanf(STDIN, "%s\n", $t);
第二行是两个整数
我不知道如何将它们存储在数组中。
如果我这样做
fscanf(STDIN, "%s\n", $n[]);
我得到一个只有第一个值的数组。 我不知道我在这里做什么,谢谢
【问题讨论】:
-
您是否提前知道任何给定行中有多少个数字? fscanf 在任何情况下都适用于标量,因此要读取两个值,您必须执行
fscanf(STDIN, "%d %d\n", $n[0], $n[1]);- 如果值用空格分隔。 -
@Jakumi 是的,我知道会有多少价值。谢谢您的回答。你能告诉我%d是什么意思吗,这是怎么回事,我不明白
-
php.net/sprintf 描述了php.net/fscanf 的格式参数。它说“我希望这里有一个数字”,
%s是任何字母数字* 序列。 fscanf 本质上会查看您获得了多少占位符,并将尝试相应地填充给定的参数。所以如果你期望两个数字,你必须告诉 fscanf 有两个,并提供两个参数来存储它们。本质上:阅读文档。 ;o/ 还有,第二种使用方式可能更简单...