“他们解释说 输出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();
}
----------------解决方案--------------------------------------------------------
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.
----------------解决方案--------------------------------------------------------
谢了,大哥
----------------解决方案--------------------------------------------------------
又懂一个知识点,呵呵!
----------------解决方案--------------------------------------------------------