364904690 发表于 2015-6-19 09:47:51

(%*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 09:47:52

本帖最后由 ryxcaixia 于 2015-6-19 11:42 编辑

* 格式,表示跳过此数据不读入
多用于读取字符时加一个scanf(*%c), 即读走标准输入字符时后面的一个空格字符

所以 scanf后 i为10 j为30k还是为0
因为中间的20被跳过去了

楼主看下面的局部变量窗口里的值 就会知道了

caster 发表于 2015-6-19 10:00:18

用在scanf 说明输入的时候要一起输入,不能用在printf

holy-jeusus 发表于 2015-6-19 10:07:12

用在scanf 说明输入的时候要一起输入,不能按空格,在printf里没见过

caster 发表于 2015-6-19 10:15:24

caster 发表于 2015-6-19 10:00
用在scanf 说明输入的时候要一起输入,不能用在printf

错了{:5_107:}......%*d表示忽略第一个整数 scanf (%d,%*d,%d)   输入10 20 30   忽略了 20,所以输出 1030还有K的0就是10300,printf也是一样的道理

溯月0503 发表于 2015-6-19 11:01:35

%d是表示打印的是政数字

溯月0503 发表于 2015-6-19 11:02:37

scanf   表示输入

笨小孩KK 发表于 2015-6-19 18:12:49

修饰符* 在scanf中是跳过相应的输入项   
在printf中是 使用*代替字段的宽度加点是代替小数点的位数

number = 342;
scanf(" %d, &width ");
printf ( "%*d, width, number " );





















桃花飞舞 发表于 2015-6-20 12:42:34

*表示本输入项在读入后不赋给相应的变量

858418616 发表于 2015-6-21 15:16:42

跳过此次
页: [1]
查看完整版本: (%*d)是什么意思?