格式的实际用途是什么"%*"
在 scanf() 中。如果这种格式存在,那么它背后一定有某种目的。下面的程序给出了奇怪的输出。
#include<stdio.h>
int main()
{
int i;
char str[1024];
printf("Enter text: ");
scanf("%*s", &str);
printf("%s\n", str);
printf("Enter interger: ");
scanf("%*d", &i);
printf("%d\n", i);
return 0;
}
Output:
manav@workstation:~$ gcc -Wall -pedantic d.c
d.c: In function ‘main’:
d.c:8: warning: too many arguments for format
d.c:12: warning: too many arguments for format
manav@manav-workstation:~$ ./a.out
Enter text: manav
D
Enter interger: 12345
372
manav@workstation:~$
对于 printf,* 允许您通过额外参数指定最小字段宽度,例如printf("%*d", 4, 100);
指定字段宽度为 4。字段宽度为 4 意味着如果打印的数字少于 4 个字符,则会打印空格字符,直到填满字段宽度。如果数字占用的空间超过指定的字段宽度,则按原样打印该数字,不会截断。
For scanf
,* 表示该字段将被读取但被忽略,因此例如scanf("%*d %d", &i)
对于输入“12 34”,将忽略 12 并将 34 读入整数 i。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)