float_printf格式换行_c语言printf里如何换行

电脑杂谈  发布时间:2017-01-14 05:02:14  来源:网络整理

信息从计算机的外部设备流入计算机称为输入。printf格式换行

从计算机主机流向外部设备称为输出。

C语言中没有输入输出语句,而是由输入输出函来实现的输入/输出的。

C标准函数库中包含的常用输入输出函数有:

格式输出函数printf()

格式输入函数scanf()

单个字符输出函数putchar()

单个字符输入函数getchar()

使用标准输入输出库函数时,要用编译命令“#include”将有关头文件“stdio.h”包括到用户的源文件当中。即:

#include<stdio.h>或

#include“tdio.h”

stdio是standard input & output(标准输入与输出)的缩写。

一般格式:

printf(格式控制”,输出列表);

例如:printf(“a=%d,b=%c\n”,a,b)

功能:向默认输出设备(一般是显示器)输出“输出列表”中各数据项。

1.格式控制

格式控制也称“控制字符串”,是由双引号括起来指定输出格式的字符串。他由格式说明、控制字符和普通字符三部分组成:

(1)格式说明

构成:由“%”字符开始后面跟有各种格式字符。

作用:以说明输出数据的类型、形式、长度、小数位等格式。

C语言提供的常用printf()函数格式说明如表3.1所示:

表3.1 printf()函数格式说明及应用举例

(2)控制字符

控制字符用于控制设备的动作,如下表中制表符“\t”、换行符“\n”等。

常见控制字符

例如:

printf(“x=%d\n”,x);

(3)普通字符

除格式说明和控制字符之外,其他字符均属普通字符,打印时按原样输出。例如:

printf(“x=%d,%c”,12,6*8);

其中“x=”和“,”都是普通字符。

输出结果是:x=12,48

2.输出列表

输出列表:就是需要输出的各数据项表达式,表达式之间用逗号分隔。

3.附加说明符

在%与格式字符间插入附加说明符,组成:

“% <附加说明字符><格式符>”输出格式来达到更高输出格式要求。

常用附加说明符如表3.2所示:

表3.2 printf()函数附加格式说明

数据输出的最小宽度,当数据实际宽度超过m时,则按实际宽度输出,如实际宽度短于m,则输出时前面补0或空格。

【例3.1】输出整型、长整型、无符号整型数据

#include “stdio.h”

void main()

{

int y=20;

long a=1024;

unsigned b=54321;

printf(“%d,%ld,%u\n”,y,a,b);

printf(“%+8d,%+8ld,%+8u\n”,y,a,b);

printf(“%08d,%08ld,%08u\n”,y,a,b); /

printf(“%-8d,%-8ld,%-8u\n”,y,a,b);

printf(“%o,%lo,%o\n”,y,a,b);

printf(“%#x,%#lx,%#x\n”,y,a,b);

printf(“%8o,%8lo,%8o\n”,y,a,b);

printf(“%-8x,%-8lx,%-8x\n”,y,a,b);

}

运行结果如下:(ㄩ代表空格)

20,1024,54321

ㄩㄩㄩㄩㄩ+20,ㄩㄩㄩ+1024,ㄩㄩㄩ54321

00000020,00001024,00054321

20ㄩㄩㄩㄩㄩㄩ,1024ㄩㄩㄩㄩ,54321ㄩㄩㄩ

24,2000,152061

0x14,0x400,0xd4321

ㄩㄩㄩㄩㄩㄩ24,ㄩㄩㄩㄩㄩ2000,ㄩㄩ152061

14ㄩㄩㄩㄩㄩㄩ, 400ㄩㄩㄩㄩㄩ, d4321ㄩㄩㄩ

【例3.2】输出字符和字符串

#include “stdio.h”

void main()

{

char ch=’a’;

printf(“%c\n”,ch);

printf(“%-3c\n”,ch);

printf(“%3c\n”,ch);

printf(“%s\n”,”programing”);

c语言printf里如何换行_float_printf格式换行

printf(“%15s\n”,”programing”);

printf(“%-15s\n”,”programing”);

printf(“%10.5s\n”,”programing”); /

printf(“%-10.5s\n”,”programing”);

}

运行结果如下:

a

aㄩㄩ

ㄩㄩa

programing

ㄩㄩㄩㄩㄩprograming

programingㄩㄩㄩㄩㄩ

ㄩㄩㄩㄩㄩprogr

progrㄩㄩㄩㄩㄩ

【例3.3】输出实型数据

#include “stdio.h”

void main()

{ float x,y;

double a;

x=111111.111;y=123.468;

a=333333333.33333;

clrscr();

printf(“%f\n”,x);

printf(“%f\n”,a);

printf(“%10f,%10.2f,%.2f,%-10.2f\n”,x,x,x,x);

printf(“%e\n”,x);

printf(“%e\n”,a);

printf(“%10e,%10.2e,%.2e.%-10.2e\n”,a,a,a,a);

printf(“%f,%e,%g”,y,y,y);

}

程序运行结果如下:

111111.109375

333333333.333330

111111.109375, ㄩ111111.11,111111.11,111111.11ㄩ

1.11111e+05

3.33333e+08

3.33333e+08, ㄩㄩㄩ3.3e+08,3.3e+08.3.3e+08ㄩㄩㄩ

123.468002,1.23468e+02,123.468

4.在使用printf()函数时,还应注意以下问题

(1) 调用printf()函数时,格式式转换说明符与输出项必须顺序和数据类型上一一对应一致。

(2) VC6.0++ 规定:当格式说明符明个数少于输出项个数时,多余的输出项不予输出。当格式说符明个数多于输出项个数时,而输出不定值。

(3) 当printf()函数中多个输出项为表达式时,VC6.0++ 规定先从右到左的顺序计算各表达式的值,然后再从左到右的顺序输出结果。

(4) 在使用“f”格式符输出实数时,并非全部数字都是有效数字,单精度实数的有效位数一般为7位,双精度数的有效位数一般为16位。

例如:

① #include “stdio.h”

void main()

{ float x=111111.111,y=222222.222;

printf("%f",x+y);

}

输出结果为:

333333.328125 /*前7位是有效数字,后面数字无意义*/

② #include “stdio.h”

void main()

{ double x=111111.11111,y=222222.22222;

printf("%lf",x+y);

}

输出结果为:

333333.333330 /*可达16位是有效数字,小数点保留6位*/

一般形式:

scanf("格式控制",地址列表);

功能:从键盘向程序中的变量输入一个或若干个任意类型的数据。

例如:

scanf("%d,%d",&a,&b);

1.格式控制

格式控制与printf基本相同,由格式说明、附加说明字符和普通字符三部分组成。printf格式换行

"% <附加说明字符><格式符>"

格式字符如表3.3所示,附加说明字符如表3.4所示。

表3.3 scanf函数格式说明及作用

表3.4 scanf函数附加格式说明及作用

用在格式字符d、o、x、u的前,表示输入长整型数据,用在f或e前,表示输入double型数据。

2.地址列表

地址列表:用逗号分隔的若干接收输入数据的变量地址。各变量地址间用逗号“,”分隔。

变量地址组成:由地址运算符“&”后跟变量名组成。

例如:

#include<stdio.h>

void main()

printf格式换行_float_c语言printf里如何换行

{

int a,b, c;

/*%d%d%d”表示要按十进制整数形式输入3个数*/

scanf(“%d%d%d”,&a,&b,&c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

运行时按以下方式输入a,b,c的值:

3ㄩ4ㄩ5↙ (输入a,b,c的值,用空格间隔)

a=3,b=4,c=5 (输出a,b,c的值)

注:输入数据时,在两个数据之间以一个或多个空格间隔,也可以用Enter键、Tab键分隔,不能用逗号作为两个数据的分隔符。

下面输入均为合法:

①3ㄩ4ㄩ5↙

②3↙

4 5↙

③3(按Tab键)4↙

5↙

如下面的输入不合法:

3,4,5↙

3.使用scanf()函数时应注意的问题

(1)地址列表中的各个参量都是变量地址,而不是变量名。

例如:设a 、 b 分别为整型变量和浮点型变量,则

scanf("%d %f",&a,&b);

是合法的。而

scanf("%d %f",a,b);

是非法的。

(2)普通字符在输入数据时,在对应位置上输入相同字符。

例如:

scanf("%d,%d",&a,&b)

输入时应用如下形式:

3,4↙

以下输入格式是不对的:

3ㄩ4↙

3:4。

又如:scanf(”%d:%d:%d”,&x,&y,&z);

输入形式应为:12:13:14。

(3)对于实型数据,输入时不能规定其精度。

例如:

scanf(“%6.3f”,&x);

是不合法的。

(4)在用“%c”格式输入字符时,空格字符和“转义字符”都将作为有效的字符输入。

例如:

scanf("%c%c%c",&c1,&c2,&c3);

如果输入:

aㄩbㄩc↙

则字符'a'→c1,字符'ㄩ'→c2,字符'b'→c3。

正确输入方法是:

abc↙(中间没有空格)

(5)在输入数据时,遇到下列情况时,输入数据认为结束:

遇空格或按“回车”或“跳格”(Tab)键;

遇宽度结束,如“%3d”,只取3列;

遇非法输入;

例如:

scanf("%d%c%f",&a,&b,&c);

若输入

123a456o.26↙

¯ ¯ ¯

a b c

123→a ,字符a→b,456→c

注:第3个数4560.26错打成456o.26,由于456后面出现了英文字母“o”,就认为此数据结束,则将会把456送给c,后面的数据将不被接受。

(6)当使用多个scanf()函数连续给多个字符变量赋值时,例如:

#include<stdio.h>

void main()

{

char c1,c2;

scanf(“%c”,&c1);

scanf(“%c”,&c2);

printf(“c1 is %c,c2 is %c”,c1,c2);

}

运行该程序时如果输入:

A↙

输出结果为:

c1 is A,c2 is ↙ (即C2接收了一个回车符↙,而没有被赋值)

如果输入:

AB↙

输出结果为:

c1 is A,c2 is B。

(7)对于unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-26176-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...