代码之家  ›  专栏  ›  技术社区  ›  Sunny Kumar

在PHP控制台中读取空格分隔的整数

php
  •  0
  • Sunny Kumar  · 技术社区  · 6 年前

    我正在用php编写一个控制台应用程序,用户将在其中输入一些整数值。

    为了读取这些值,我使用

    fscanf(STDIN, "%d\n", $a);
    fscanf(STDIN, "%d\n", $b);
    fscanf(STDIN, "%d\n", $c);
    

    注意:不能在不同的行中输入整数。

    1 回复  |  直到 6 年前
        1
  •  5
  •   kalehmann ASKN    6 年前

    你可以用 fscanf(STDIN, "%d %d %d\n", $a, $b, $c);

    例子:

    <?php
    $stdin = fopen('php://stdin', 'r');
    
    print_r("Your 3 numbers:\n");
    
    fscanf($stdin, "%d %d %d\n", $a, $b, $c);
    
    print_r(sprintf('$a : %d $b : %d $c : %d' . "\n", $a, $b, $c));
    

    如果您需要有关格式化字符串的更多信息,您可能需要查看 php documentation for sprintf

    fscanf . 那么 fscanf公司 返回包含所有解析值的数组。

    <?php
    $stdin = fopen('php://stdin', 'r');
    
    print_r("How many numbers do you want to enter? :  ");
    fscanf($stdin, "%d\n", $n);    
    
    print_r("Your ". $n . " numbers:\n");
    
    $result = fscanf($stdin, str_repeat("%d ", $n). "\n");
    
    print_r("I have parsed " . implode($result, ", ") . "\n");
    

    输出如下所示:

    How many numbers do you want to enter? :  10
    Your 10 numbers:
    1 1 2 3 5 8 13 21 34 55
    I have parsed 1, 1, 2, 3, 5, 8, 13, 21, 34, 55