c/c++语言开发共享scanf()中的%* c – 这是什么意思?

我试图在Turbo C中运行该程序,但无法解密输出。 这个%*c是什么意思? 任何帮助,将不胜感激。

 int dd,mm,yy; printf("ntEnter day,month and year"); scanf("%d %*c %d %*c %d",&dd,&mm,&yy); // what does %*c mean ? printf("ntThe date is : %d %d %d",dd,mm,yy); 

OUTPUT

 Enter day, month and year 23 2 1991 3 5 The date is: 23 1991 5 

    scanf()格式的*表示’读取数据但不将其分配给参数列表中的变量’。 在上下文中,这意味着您可以键入:

     18/07/2012 

    并正确解释当天(18),月(7)和年(2012)。 格式字符串中的空格是至关重要的,并使事情变得复杂。 通常, %c读取下一个字符,甚至是空格,但%*c转换说明符周围的空格处理空格,因此代码需要使用非空字符。

    因此,当您键入时观察到的行为:

     23 2 1991 3 5 

    第一个%*c消耗2(单独),第二个消耗3(单独)。

    这是标准C,而不是Turbo C的特殊function(问题的第一版指定,但问题已被编辑,以便在我第一次写这个答案后删除对Turbo C的引用)。

    格式字符串中的* after %表示将忽略与格式匹配的输入(因此无需传入指向变量的指针来存储您不会使用的匹配值)。

    它意味着忽略下一个字符,例如空格, /-在书面日期中很常见。

    使用* with scanf抑制赋值。 随后的转换结果将被丢弃。

    需要了解更多c/c++开发分享scanf()中的%* c – 这是什么意思?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享scanf()中的%* c – 这是什么意思?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/979237.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐