我试图在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