⑴ %在c语言中是什么意思
1、运算符:取余运算符。
2、格式:
%d是整型,%c是字符型,%%是输出%,%ld是输出长整型。
%f是输出浮点型(小数形式),%e是输出浮点型(指数形式)。
%lf/%le用于输出double型,%g选%e/%f长度小的一种,且不输出多余的零。
%o输出八进制,不会输出负的,%x输出十六进制。
%hd用于输出短整型。
%s用于字符串
⑵ C语言中{}作用
取决于在scanf中使用还是在printf中使用。
在scanf中使用,则添加了*的部分会被忽略,不会被参数获取。
例如:int a,b;char b[10];scanf("%d%*s",&a,b);输入为:12 abc那么12将会读取到变量a中,但是后面的abc将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b)
在printf中使用,表示用后面的形参替代的位置,实现动态格式输出。
例如:
printf("%*s",10,s);/意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s",s);/
(2)c语言里的扩展阅读:
C语言%*s用法
1、在scanf中使用,则添加了*的部分会被忽略(跳过),不会被参数获取。
例如:
int a,b;
char b[10];
scanf("%d%*s",&a,b);
输入为:
12 abc
那么12将会读取到变量a中,但是后面的abc将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b)
用*和扫描集配合,可以从输入中只选出需要的内容,而忽略其余的东西。
另外,也常用于清空缓冲区。
2、在printf中使用,*表示用后面的形参替代*的位置,实现动态格式输出。
例如:
printf("%*s", 10, s); /*意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s", s);*/
printf("%.*s
",int,str) ;
// %.*s 其中的.*表示显示的精度 对字符串输出(s)类型来说就是宽度
// 这个*代表的值由后面的参数列表中的整数型(int)值给出
例如:
printf("%.*s ", 1, "abc");// 输出a
printf("%.*s ", 2, "abc");// 输出ab
printf("%.*s ", 3, "abc");// 输出abc >3是一样的效果 因为输出类型type = s,遇到'