当前位置: 代码迷 >> C语言 >> [求助]%*c表示什么意思
  详细解决方案

[求助]%*c表示什么意思

热度:440   发布时间:2006-09-21 21:46:38.0
以下是引用cjx1028在2006-9-21 21:36:40的发言:
“他们解释说 输出10个空格再输出ch” /好像不是这样吧/
这个*是用来表示输出的宽度的,比如:
char s[]=123456
printf("%*s",8,s) printf("%*s",3,s) 会输出123(从S中至多输出三个字符)

谢谢你的帮忙,不过看了你的贴子有点问题


如果真的输出结果是那样的话,我很郁闷
看这一句
char s[]=123456 /*后面还少了;*/
你定义了一个字符型数组,给他负了一个整型,不是"123456",怎么会
会输出 123456(左边有两个空格)

我错了,还是你错了?

[此贴子已经被作者于2006-9-21 21:49:05编辑过]


----------------解决方案--------------------------------------------------------
char s[]=123456;
这样为什么编译不通过?
给char数组负一个整型,按道理应该能行呀

问题真多
----------------解决方案--------------------------------------------------------

/*试试这个*/
#include "stdio.h"
#include "conio.h"

main()
{
int a,b;
scanf("%2d%*3d%2d",&a,&b);
printf("%d\n%d",a,b);

getch();
}


----------------解决方案--------------------------------------------------------
以下是引用账号已被封在2006-9-21 21:52:55的发言:
char s[]=123456;
这样为什么编译不通过?
给char数组负一个整型,按道理应该能行呀

问题真多

类型不匹配.

char s[]="123456";可以.
----------------解决方案--------------------------------------------------------
负初值时他不自动转换?
----------------解决方案--------------------------------------------------------

如果都可以这样,那还不乱套了.再说转换也只有向高地方转的.
char-->int.


----------------解决方案--------------------------------------------------------

/*试试这个*/
#include "stdio.h"
#include "conio.h"

main()
{
int a,b;
scanf("%2d%*3d%2d",&a,&b);
printf("%d\n%d",a,b);

getch();
}

给我讲下scanf("%2d%*3d%2d",&a,&b);
这一句哈
不明白,给两个地址负值,用了3个%

大哥,给我讲一下


----------------解决方案--------------------------------------------------------
其中中间那个是指跳过3列,也就是说比如你输入12 345 67,中间的345不会赋给b而跳过这几个数字,而将67赋给b.
----------------解决方案--------------------------------------------------------
谢了,大哥
----------------解决方案--------------------------------------------------------
又懂一个知识点,呵呵!
----------------解决方案--------------------------------------------------------
  相关解决方案