分享
为什么问答平台  ›  专栏  ›  技术社区  ›  rdelmar

SScanf的格式说明符:%格式% - Format Specifier for sscanf: %{format%}

  •  -1
  • rdelmar  · 技术社区  · 7 月前

    我在标题中只看到了一些对格式的引用,没有很好的例子。我看到的定义是:

    %{format%} 重复匹配格式说明符格式 尽可能乘以,并给出一个包含结果的数组数组。

    有没有人有一个好的例子来说明如何使用这个?您需要传递什么才能接收结果?

    2 回复  |  直到 7 月前
        1
  •  2
  •   gsamaras Jose    7 月前

    你好像是从 docs.roxen/pike ,这就是 标准C

    Pike 是一种具有语法的面向对象编程语言 类似的 到Java和 C . 它是 C!


    为了了解 sscanf() ,UOU应检查 reference 其中提到:

    format :c字符串,其中包含与scanf中的格式遵循相同规范的格式字符串(有关详细信息,请参阅scanf)。

    并举例说明。另一个例子是:

    #include <stdio.h>
    
    int main () {
       int day, year;
       char month[10], date[15] = "29 May 1453";
    
       int items_read = sscanf(date, "%d %s %d", &day, month, &year);
    
       printf("Constantinople fell in %d %s %d. sscanf() Read %d items.\n", day, month, year, items_read);
    
       return 0;
    }
    

    输出:

    Constantinople fell in 29 May 1453. sscanf() Read 3 items.
    

    在这里 sSCAN() 期待 date 作为源,并将格式与后面的参数匹配。它将尝试匹配字符串 日期 一个整数,后跟一个空格、一个字符串、一个空格和一个整数。

    如你所见, 日期 有一个整数(29),然后是一个空格,然后是一个字符串(“may”),然后是一个空格,然后是一个整数(1453),因此它完全匹配格式。然后它将这些值分配给相应的变量。

    请注意,方法的返回值在成功时如何返回成功填充的参数列表中的项数。

        2
  •  0
  •   Gerald Chu    7 月前

    这似乎是Pikes独有的,它不完全是C++。

    派克是一种解释的、面向对象的编程语言。它看起来 有点像C和C++,但是它更容易学习和使用。它可以 用于小脚本和大程序。

    http://docs.roxen.com/pike/7.0/tutorial/introduction/index.xml

    http://docs.roxen.com/pike/7.0/tutorial/strings/sscanf.xml