(%*d)是什么意思?
输入10 20 30后回车输出结果为:10300
scanf中的%*d表示什么?如果将这种格式用在printf函数中,表示什么意思?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
return 0;
}
本帖最后由 ryxcaixia 于 2015-6-19 11:42 编辑
* 格式,表示跳过此数据不读入
多用于读取字符时加一个scanf(*%c), 即读走标准输入字符时后面的一个空格字符
所以 scanf后 i为10 j为30k还是为0
因为中间的20被跳过去了
楼主看下面的局部变量窗口里的值 就会知道了
用在scanf 说明输入的时候要一起输入,不能用在printf 用在scanf 说明输入的时候要一起输入,不能按空格,在printf里没见过 caster 发表于 2015-6-19 10:00
用在scanf 说明输入的时候要一起输入,不能用在printf
错了{:5_107:}......%*d表示忽略第一个整数 scanf (%d,%*d,%d) 输入10 20 30 忽略了 20,所以输出 1030还有K的0就是10300,printf也是一样的道理 %d是表示打印的是政数字 scanf 表示输入 修饰符* 在scanf中是跳过相应的输入项
在printf中是 使用*代替字段的宽度加点是代替小数点的位数
如
number = 342;
scanf(" %d, &width ");
printf ( "%*d, width, number " );
*表示本输入项在读入后不赋给相应的变量 跳过此次
页:
[1]