C语言输出附加格式说明字符怎么用

作者&投稿:阚仪 (若有异议请与网页底部的电邮联系)
请分别说明c语言中输入、输出格式字符串的特点与作用。~

格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。 格式字符有d,o,x,u,c,s,f,e,g等。 如%d整型输入/输出,%ld长整型输入/输出,%o以八进制数形式输入/输出整数,%x以十六进制数形式输入/输出整数,%u以十进制数输入/输出unsigned型数据(无符号数)。%c用来输入/输出一个字符,%s用来输入/输出一个字符串,%f用来输入/输出实数,以小数形式输出,(备注:浮点数是不能定义输入的精度的,所以,scanf(“%6.2f”,&a)这种写法是“错误的”!!!)%e以指数形式输出实数,%g根据大小自动选f格式或e格式,且不输出无意义的零。scanf(控制字符,地址列表) 格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。如scanf("%d%c%s",&a,&b,str)

  c语言中的格式说明符,以%开头,后面接上字母,如%d表示整数,%f表示浮点数,%s表示字符串,%c表示字符等等!


  扩展:格式说明符详细说明

  ① d格式:用来输出十进制整数。有以下几种用法:
  %d:按整型数据十进制的实际长度输出。
  %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
  %ld:输出长整型数据。

  ② o格式:以无符号八进制形式输出整数。
  %d:按整型数据八进制的实际长度输出。
  %lo:对长整型可以用格式输出
  %mo:指定字段宽度用格式输出

  ③ x格式:以无符号十六进制形式输出整数。
  %x:按整型数据十六进制的实际长度输出。
  %lx:对长整型可以用格式输出
  %mx:指定字段宽度用格式输出

  ④ u格式:以无符号十进制形式输出整数。
  %u:按无符号整型数据十进制的实际长度输出。
  %lu:对长整型可以用格式输出
  %mu:指定字段宽度用格式输出

  ⑤ c格式:输出一个字符。
  ⑥ s格式:用来输出一个串。有几中用法
  %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
  %ms:输出的字符串占m列,如字符串长度大于m,将字符串全部输出。若串长小于m,则左补空格。
  %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
  %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
  %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

  ⑦ f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:
  %f:不指定宽度,整数部分全部输出并输出6位小数。
  %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
  %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

  ⑧ e格式:以指数形式输出实数。可用以下形式:
  %e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。
  %m.ne和%-m.ne:m、n和”-”字符含义与前相同。
  此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

  ⑨ p格式:输出指针地址

C语言基本的输出格式说明符如下:

%d 十进制有符号整数 

%u 十进制无符号整数 

%f 浮点数 

%s 字符串 

%c 单个字符 

%p 指针的值 

%e 指数形式的浮点数 

%x, %X 无符号以十六进制表示的整数 

%0 无符号以八进制表示的整数 

%g 自动选择合适的表示法 


说明: 

1、可以在"%"和字母之间插进数字表示最大场宽。 例如:

%3d 表示输出3位整型数, 不够3位右对齐。 

%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 

%8s 表示输出8个字符的字符串, 不够8个字符右对齐。 

如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出, 

但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 

若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。 


2、 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。 例如:

%ld 表示输出long整数 

%lf 表示输出double浮点数 


3、可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。 例如:

%-7d 表示输出7位整数左对齐 

%-10s 表示输出10个字符左对齐


使用方法可以参考如下程序:

#include<stdio.h> 
#include<string.h> 
int main() 

    char c, s[20], *p; 
    int a=1234, *i; 
    float f=3.141592653589; 
    double x=0.12345678987654321; 
    p="How do you do"; 
    strcpy(s, "Hello, Comrade"); 
    *i=12; 
    c='\x41'; 
    printf("a=%d
", a); /*结果输出十进制整数a=1234*/ 
    printf("a=%6d
", a); /*结果输出6位十进制数a= 1234*/ 
    printf("a=%06d
", a); /*结果输出6位十进制数a=001234*/ 
    printf("a=%2d
", a); /*a超过2位, 按实际值输出a=1234*/ 
    printf("*i=%4d
", *i); /*输出4位十进制整数*i= 12*/ 
    printf("*i=%-4d
", *i); /*输出左对齐4位十进制整数*i=12*/ 
    printf("i=%p
", i); /*输出地址i=06E4*/ 
    printf("f=%f
", f); /*输出浮点数f=3.141593*/ 
    printf("f=6.4f
", f); /*输出6位其中小数点后4位的浮点数f=3.1416*/ 
    printf("x=%lf
", x); /*输出长浮点数x=0.123457*/ 
    printf("x=%18.16lf
", x);/*输出18位其中小数点后16位的长浮点数x=0.1234567898765432*/ 
    printf("c=%c
", c); /*输出字符c=A*/ 
    printf("c=%x
", c); /*输出字符的ASCII码值c=41*/ 
    printf("s[]=%s
", s); /*输出数组字符串s[]=Hello, Comrade*/ 
    printf("s[]=%6.9s
", s);/*输出最多9个字符的字符串s[]=Hello, Co*/ 
    printf("s=%p
", s); /*输出数组字符串首字符地址s=FFBE*/ 
    printf("*p=%s
", p); /* 输出指针字符串p=How do you do*/ 
    printf("p=%p
", p); /*输出指针的值p=0194*/ 
    getch(); 
    retunr 0; 
}


1.%msd。m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出,例如:
printf("%4d,%4d",a,b);
若a=123,b=12345,则输出结果为
_123,12345
2.%ms,输出的字符串占m列,如果本身长度大于m,则突破m的限制,将字符串全部输出。若串长度小于m,则左补空格。
3.%-ms,如果串长度小于m,则在m列范围内,字符串向左靠,右补空格。
4.%m.ns,输出占m列,但只取字符串左端n个字符。这n个字符输出在m列的右侧,左补空格。
5.%-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则m自动取n值,即保证n个字符正常输出。例如:
printf("%7.2s,%-5.3s\n","CHINA","CHINA");
则输出结果为
_ _ _ _ _ CH,CHI _ _

这个,举个例子吧:
int a=1000;
printf("%5d",a);
m和.n都是用在%号跟类型之间的,如果数值长度大于m会根据实际输出,不足则又对齐
float a=1.23456
printf("%.3f",a);就是指显示小数点后3位,4舍5入


C语言输出附加格式说明字符怎么用
ld 表示输出long整数 lf 表示输出double浮点数 3、可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。 例如:-7d 表示输出7位整数左对齐 -10s 表示输出10个字符左对齐 使用方法可以参考如下程序:include<stdio.h> #include<string.h> int main()...

C语言printf附加格式字符问题,求详细解释
其实此题主要考察scanf的附加格式字符作用。scanf中%2d表示只接收两位整数,所以a=98;%3f表示只接收3位浮点数,所以b=765;%4f表示只接收4位浮点数,所以c=4321。printf的附加格式字符只是对相应的变量增加了a=、b=和c=及各输出变量间加了个逗号,且要注意浮点数默认小数是6位,所以最后输出是:a...

c语音 printf附加格式说明符l有什么用
printf语句里 %f 和 %lf 用于输出浮点型数据,定点格式。理论上 %f 用于输出float型, %lf 用于输出double型,定点格式。实际上 两者可以通用,float 也可用 %lf ,double 也可用 %f ,没有区别。但注意,输入语句里 不通用,float 必须用 %f, double 必须用 %lf, 不可混淆。

C语言中格式输出函数PRINTF中的附加格式符中M表示输出数据的最小宽度...
5 如果我们需要宽度为 3,输出即为:5 前面多了两个空格,一共是三位。

C语言中 %*c 是什么意思?
这是C语言的格式输出,%c,%y这些代表你要输出的数据的数据类型;%d 表示输出十进制有符号的整数。1、%u 十进制无符号整数。2、%f 表示输出浮点数。3、%s表示输出 字符串。4、%c表示输出单个字符。5、%p表示输出指针的值。6、%e表示输出指数形式的浮点数。7、%x, %X 表示输出无符号以十六进制表示...

C语言输出字符或者字符串的格式控制符有哪些?
前面的如果不知道就不要乱猜,以免误导人!* :表示本输入项在读如后不赋值给相应变量他是scanf的附加格式说明符比如: char ch='a';scanf("%*c",&ch); 那么不管输入什么字符,ch的值都不变,还是'a'请看程序:

C语言中printf()函数中的%2.1f是什么意思?
2.1f表示用实型格式输出,其中“2.1”是附加格式说明符,表示输出宽度为2,输出1位小数

求printf和scanf的具体用法以及举例 C语言 二级考试
s 输出字符串 f 以小数形式输出单、双精度数 e 以标准指数形式输出单、双精度数 g 选用%f或%e格式中输出宽度较短的格式 表3-3 printf附加格式符字符 说明 l 用于长整型数,可加在格式符d、o、x、u前面 M(代表一个正整数) 数据最小宽度 n(代表一个正整数) 对实数,表示输出n位小数;对...

C语言中%*d什么意思?
d 是输出输入格式 为整型,用于 int , short int f 是输出输入格式 为单精度浮点型,用于 float double 变量要用 %lf, l 是 long 的意思。

C语言中%*d格式输出是什么意思??
printf中的%*d的意思是输出*个宽度的%d(整形)。例子:a=5;b=6;printf("%*d",a,b);其中,a代表*,即%5d,格式化输出5个宽度的整形b。最后输出的结果为 6.即[4个空格]

旺苍县13937311926: 在C语言中输出格式字符是怎么使用的 -
皮待洁维: 输出格式字符控制输出项的显示格式. printf(“a=%d\n”,a);输出格式:a=XXX,是十进制整数输出,无小数,并换行. printf(“%f\n”,b); 输出格式:XXX ,是按浮点数输出的,可以输出小数,并换行.

旺苍县13937311926: 使用printf函数的附加格式说明字符,对输出的数据进行更为准确的格式设计 -
皮待洁维: int型数据长度是可变的(取决于字长),而long型数据长度为固定不变的4B,跟采用的编译系统没有关系.

旺苍县13937311926: C语言printf附加格式字符问题,求详细解释 -
皮待洁维: 其实此题主要考察scanf的附加格式字符作用.scanf中%2d表示只接收两位整数,所以a=98;%3f表示只接收3位浮点数,所以b=765;%4f表示只接收4位浮点数,所以c=4321.printf的附加格式字符只是对相应的变量增加了a=、b=和c=及各输出变量间加了个逗号,且要注意浮点数默认小数是6位,所以最后输出是:a=98,b=765.000000,c=4321.000000.显然C正确.

旺苍县13937311926: C语言转换格式符大全? -
皮待洁维: int printf(const char *format,[argument]);format 参数输出的格式,定义格式为:%[flags][width][.perc] [F|N|h|l]type规定数据输出方式,具体如下:1.type 含义如下:d 有符号10进制整数i 有符号10进制整数o 有符号8进制整数u 无符号10进制...

旺苍县13937311926: C语言 使用scanf输入5个字符,printf输出(小写改大写) -
皮待洁维: #include "stdio.h" void main() { char c; for(int i=0;i{ scanf("%c",&c); printf("%c",c-'a'+'A'); } }

旺苍县13937311926: C语言printf与scanf的转义字符? -
皮待洁维: 我直接给你一个简单点的..你看看.如printf("i=%d,ch=%c\n",i,ch);意思就是要求输出运算后 10进制数i和字符ch的值...scanf("%d",&a);意思就是要求你从键盘输入10进制的数a.你再结合上面朋友的就更加明白了.

旺苍县13937311926: 求printf和scanf的具体用法以及举例 C语言 二级考试 -
皮待洁维: print();将数据进行格式化输出,要写明白输出的数据的类型 比如:int num=1; printf("%d", num); 输出一个整数 有比如 double num1 =0.4; printf("%f", num1); 输出一个小数.而且格式化类型个数与输出个数要相等 比如:int num=1; ...

旺苍县13937311926: C语言格式说明符问题 -
皮待洁维: printf 中可以用 * 指定字符宽度char xing[10]="Chen";char ming[10]="Palmer"; printf("%s %s\n",ming,xing);printf("%*s%d %*s%d",strlen(ming)-1," ",strlen(ming),strlen(xing)-1," ",strlen(xing)); 第二个printf中 strlen(ming)-1 指定...

旺苍县13937311926: c语言格式转换说明符问题 -
皮待洁维: 后面的是你再vc++中运行的吗?建议你先搞清楚基础东西再看vc,%d,这个是格式化输出的东西,%5d表明宽度是5,如果输出的变量的宽度5,则是失效的,%-5d,这个表示的是左对齐输出,希望对楼主有帮助

旺苍县13937311926: C语言中格式字符中的修饰符*该怎么使用 -
皮待洁维: *在scanf格式字符串中用于跳过数据.例如%c表示读取一个字符,则%*c表示跳过一个字符;%d表示读取一个整数,则%*d表示跳过一个整数.举几个例子: scanf("%d%c%d", &a, &b, &c); 输入1+2,则a=1,b='+',c=2 scanf("%d%*c%d", &a, &c); 输入1+2,则a=1,c=2,'+'号被跳过 scanf("%d%d", &a, &b); 输入123 456,则a=123,b=456 scanf("%*d%d", &b); 输入123 456,则b=456,123被跳过

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网