c语言格式控制符c
① c语言中控制符,格式符以及修饰符是什么东西 分别有什么功能
格式符其实是占位符,它后面对应的数据实际上是堆栈,具体可以先学数据结构;至于转义字符什么的,一般的编程语言中都有,主要是为了与语言使用的字符相区别
② c语言中,格式控制符,e如何正确使用
%e是用来输出浮点数的,输出结果为科学计数法形式。
直接用就好
prinf("%e",1234.234);
类似这样就可以了。
和%f什么的没什么区别。
③ c语言中用来输入单个字符的格式控制符是
是说 scanf printf 里用的 %c 吗?
④ c语言中,每一种输入控制符可以用来输入哪种数据类型
scanf("%lf",&x);是输入,%后,lf表述double类型的输入,f表示float类型的输入("sineof%lfis%lf\n",x,s),是输出%lf是double类型的输出scanf(格式控制,地址表列)intscanf(char*format[,argument,]);“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。格式控制有:%a,%A读入一个浮点值(仅C99有效)%c读入一个字符%d读入十进制整数%i读入十进制,八进制,十六进制整数%o读入八进制整数%x,%X读入十六进制整数%s读入一个字符串,遇空格、制表符或换行符结束。%f,%F,%e,%E,%g,%G用来输入实数,可以用小数形式或指数形式输入。%p读入一个指针%u读入一个无符号十进制整数%n至此已读入值的等价字符数%[]扫描字符集合%%读%符号printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:intprintf(constchar*format,);函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。printf()函数的调用格式为:printf("",);其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。格式字符串,包括各种字符和格式控制符,格式控制符,和前面的一样,
⑤ C语言的所有格式符。
一、格式符含义
1、d格式符:按十进制格式输出。
%d 输出数字长度为变量数值的实际长度
%md 输出m位(不足补空格,大于m位时按实际长度输出)
%ld,%mld l(小写字母L)表示输出“长整型”数据
%0md,%0mld 0(数字0)表示位数不足m时补0
注:%后面的m(位数控制)、0(位数不足补0)对于其他格式符也适用。
例:(□表示空格)
int i=123;
long j=123456;
printf("%d□5d□05d,□ld□8ld□08ld",i,i,i,j,j,j);
输出:123□□□123□00123,□123456□□□123456□00123456
2、o(字母)格式符:按八进制格式输出。(不会出现负数格式)
3、x格式符:按十六进制格式输出。(不会出现负数格式)
4、u格式符:用于输出unsigned类型数据。
例:main()
{
unsigned int a=65535;
int b=-2;
printf("a=%d,%o,%x,%u\n",a,a,a,a);
printf("a=%d,%o,%x,%u\n",b,b,b,b);
}
输出:a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
5、c格式符:以字符形式输出。
6、s格式符:以字符串格式输出。
例:printf("%s","CHINA");
%ms m指定宽度(不足时左补空格,大于时按实际宽度输出)
%-ms 左对齐,不足m时右补空格
%m.ns 输出占m个字符位置,其中字符数最多n个,左补空格
%-m.ns 同上,右补空格
7、f格式符:按实数格式输出。
%f 按实数格式输出,整数部分按实际位数输出,6位小数
%m.nf 总位数m(含小数点),其中n位小数
%-m.nf 同上,左对齐
例:main()
{ float x, y;
x=111111.111; y=222222.222;
printf("%f", x+y);
}
程序输出: 333333.328152(实数运算中误差不可避免)
例:main()
{ double x,y; double x2,y2;
x=1111111111111.111111111; y=2222222222222.222222222;
x2=1111111111111.111; y2=2222222222222.222;
printf("%f %f", x+y, x2+y2); /* 13位整数,9位小数 */
}
程序输出: 3333333333333.333010 3333333333333.333010(相同)
注意
从以上两例可以看出,实数运算中误差不可避免,double比float精度高。
float实数(单精度)的有效位数是7位,double实数(双精度)的有效位数是16位,超过有效位数的输出和输入均无意义。
例:
main()
{ float f=123.456;
printf("%f□□%10f□□%10.2f□□%.2f□□%-10.2f",f,f,f,f,f);
}
输出结果:
123.455994□□123.455994□□□□□□123.46□□123.46□□123.46
8、e格式符:以指数形式输出实数。%e 输出13位,其中:1位整数,1位小数点,6位小数,5位指数(含字符e和指数的符号)
9、g格式符:根据数值大小,自动选择f或e格式输出。
二、使用注意
1、%是printf()的格式说明符,若要直接输出字符%,在格式控制中使用两个连续的%。
例:printf("%f%%", 1.0/3) 输出: 0.333333%。
2、通常在有格式字符o和x按八进制和十六进制形式输出整数时,在数值前不出现0和0x,可在%和格式字符间插入#来实现。
例:printf(“%o,%#o,%x,%#x\n”,10,10,10,10);
输出:12,012,a,0xa
3、指定输出宽度的同时指定左对齐可在宽度前插入“—”来实现。
⑥ C语言输出字符或者字符串的格式控制符有哪些
LZ刚刚还举了个例子是:printf("%*c",i,ch)其中i为整型ch为字符型。在这里
*
的作用是输出宽度修饰符。比如:i=3,ch='a';那么printf("%*c",i,ch);
输出地就是“空格空格a”。i=3表示输出地字符串占3位。请看例子:
⑦ c语言:格式输出的格式控制符,%s的用法
s格式符,输出一个字符串.
⑴%s,如printf("%s","CHINA")
⑵%ms,输出的字符串占m列,字符串长度小于m,左边补空格,如果超出则全部输出.
⑶%-ms,串小于m,则在m列范围内字符串左靠,右补空格.
⑷%m.ns,输出占m列,但只取字符串左端n个字符.这n个字符输出在m列的右边,然后左边补空格.
⑸%-m.ns,和上面的放下,就是n个字符输出在m列的左侧,右边补空格.n>m,那么m自动取n的值,既保证n个字符正常输出.
⑧ c语言中 那个格式控制字符串 可以输入数字和字符
scanf():通过格式控制符%s输入字符串。除了字符串,scanf()还能输入其他类型的数据。scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。
gets():直接输入字符串,并且只能输入字符串。gets()认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对gets()来说就是一个完整的字符串。换句话说,gets()用来读取一整行字符串。
(8)c语言格式控制符c扩展阅读
scanf()和gets()的使用:
#include<stdio.h>
intmain(){
charstr1[30]={0};
charstr2[30]={0};
charstr3[30]={0};
//gets()用法
printf("Inputastring:");
gets(str1);
//scanf()用法
printf("Inputastring:");
scanf("%s",str2);
scanf("%s",str3);
printf(" str1:%s ",str1);
printf("str2:%s ",str2);
printf("str3:%s ",str3);
return0;
}
⑨ c语言中的%f格式控制符
float精度问题,float只有6到7位有效数字。
类型 比特(位)数 有效数字 数值范围
float 32 6~7 -3.4E-38~3.4E38
double 62 15~16 -1.7E-308~1.7E308