c语言教程_第6章_用户与计算机的交互_输入和输出
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2.1 格式化输出函数——printf()
我们再来看以下代码。
01 02 03 04 printf(“Hello \n”) printf("a,A \n"); printf("班级平均成绩为:%f\n",avg); printf("First output i=%d\n",i);
从这些语句中,我们可以很容易的看出第1 行和第2行没有参数,原样输出,第3行和第 4行都用到了参数。
【范例6-5】 m.ns和-m.ns格式符练习。
6.2.2 格式控制字符
6. 格式控制字符
以八进制形式表示数据。即把内存中数据的二进制 形式转换为八进制后输出,由于二进制中有符 号位,那么就把符号位也作为八进制的一部分 进行输出。
7. 格式控制字符
以十六进制形式表示数据。与%o一样,也把二进 制中的符号位作为十六进制中的一部分进行输 出。
第ຫໍສະໝຸດ Baidu章
用户与计算机的交互——输入和输出
标准输入输出 格式化输入输出 字符输入输出 字符串输入输出 跟我上机
用户与计算机的交互——输入和输出
输入/输出是计算机最基本的行为,也是任 何语言必需的功能,起到了用户和计算机桥 梁的作用,那么,在C语言的世界里,输入 和输出是怎么实现的?怎么样高速、高效的 进行输入和输出呢?我们就在这一章来进行 讨论吧!
6.2.2 格式控制字符
⑵ %m.nf:以固定的格式输出小数,m指 的是包括小数点在内的数据的位数,n是指 小数的位数,当总的数据位数小于m时,数 据左端补空格,如果大于m时,原样输出。 ⑶ %-m.nf:除了%m.nf以外,要求输出 的数据向左靠齐,右端补空格。
6.2.2 格式控制字符
6.2.2 格式控制字符
2. u格式控制字符
⑴ %u:以十进制形式输出无符号的整数。 ⑵ %mu:与%md类似,限制了数据的位数。 ⑶ %lu:与%ld类似,输出的数据是长整型,范 围较大。
6.2.2 格式控制字符
3. f格式控制字符 ⑴ %f:以小数形式输出实数,整数部分全 部输出,小数部分为六位。 【范例6-3】 格式控制字符f的应用。
6.1 标准输入输出
程序如何知道用户想要的内容,用户又如何 得知程序运算的结果呢?可以通过输入输出 来实现。我们先来看下面的程序运行结果。
6.1 标准输入输出
在命令行中,提示用户输入1个整数,当用 户输入100,并按【Enter】键后,程序显 示“您输入的整数是:100”,这就是个简单 的输入输出的过程:程序提示用户输入数 据程序读取后输出,实现了用户和计算机 的交互。
6.2.1 格式化输出函数——printf()
我们还可以把该函数的使用格式细分一下。 ⑴ 没有参数时,调用格式如下: printf("非格式字符串"); 使用这种格式输出的是双引号内的原样内容,通常用于提示信 息的输出。 ⑵ 有参数时,调用格式如下: printf(“格式字符串”,参数列表); 使用这种格式时,格式字符串内包含一个或多个格式控制字符。 格式控制字符以“%“开头,紧跟其后的d、s、f、c等字符, 用以说明输出数据的类型。格式控制字符的个数与参数列表中 参数的个数相等,并且一一对应,输出时,用参数来代替对应 的格式控制字符。参数可以是变量,也可以是表达式等。
c s
f e g
输出字符值 输出字符串
输出十进制浮点数 以科学计数法输出浮点数 等价于%f或%e,输出两者中占 位较短的
6.2.2 格式控制字符
下面详细介绍这些格式控制字符的使用方法。 1. d格式控制字符 使用如下。
⑴ %d:以十进制形式输出整数。 ⑵ %md:与%d相比,用m限制了数据的宽度,是指数据 的位数,当数据的位数小于m时,以前面补空格的方式 输出,反之,如果位数大于m,则按原数输出。 ⑶ %ld:输出长整型的数据,其表示数据的位数比%d多。
6.2.2 格式控制字符
4. c格式控制字符:输出单个字符 5. s格式控制字符:输出字符串
%s、%ms和%-ms与前面介绍的几种用法相同, 故省略,在此,我们介绍一下%m.ns和%m.ns两种。 ⑴ %m.ns:输出m位的字符,从字符串的左端开 始截取n位的字符,如果,n位小于m位,则左 端补空格。
6.2.2 格式控制字符
在上面的程序中, 我们所使用的%d、 %c和%f就是格式 控制字符,除了这 些外还有很多,下 表所示就是C语言 程序中常用的格式 控制字符。
格式控制字 符
d o x u 含义 以十进制形式输出整数值 以八进制形式输出整数值 以十六进制形式输出整数值 以无符号数形式输出整数值
【范例6-4】 格式控制字符%m.nf和%-m.nf格式符练习。 01 #include <stdio.h> 02 int main(void) 03 { 04 float f=123.456; /*初始化变量*/ 05 printf("%f\n",f); /*按%f格式输出*/ 06 printf("%10.1f\n",f); /*按%m.nf格式输出*/ 07 printf("%5.1f\n",f); 08 printf("%10.3faaa\n",f); 06 printf("%-10.3faaa\n",f); /*按%-m.nf格式输出*/ 10 return 0; 11 }
6.2 格式化输入输出
6.2.1 格式化输出函数——printf() 6.2.2 格式控制字符 6.2.3 格式化输入函数——scanf()
6.2 格式化输入输出
格式化是指按照一定的格式,格式化输入输 出就是指按照一定的格式读取来自输入设备 的数据和向输出设备输出数据。符合格式化 输入输出的代表函数是printf()函数和 scanf()函数。这两个函数是程序中用的最 多的输入输出函数,也是本章的重点。
6.2.2 格式控制字符
01 02 03 04 #include<stdio.h> int main(void) { float f1=11.110000811; /*定义一个float类型的变量f1并 赋值*/ 05 float f2=11.110000; /*定义一个float类型的变量f2并赋值*/ 06 printf("%f\n",f1); /*按%f的格式输出f1*/ 07 printf("%f\n",f2); /*按%f的格式输出f2*/ 08 return 0; 9 } 本例中定义的f1和f2的小数位数不同,但是输出后位数都为6位,这是问什么 呢?是因为%f格式输出的数据小数部分必须是6位,如果原数据不符合, 位数少的时候补零,位数多的时候小数部分取前6位,第7位四舍五入。
6.1 标准输入输出
C语言本身并不提供输入输出语句,而是用一组库 函数来实现数据的输入和输出,由于不同的C系统 提供不同的输入输出函数,而一些常用的函数是各 系统中共有的,称之为标准输入输出函数。 本章就来学习这些标准的输入输出函数,包括上面 程序所提到的格式化输入(printf)输出(scanf) 函数,以及字符输入(getchar)输出(putchar) 函数和字符串输入(gets)输出(puts)函数等。
6.2.2 格式控制字符
【范例6-2】 格式控制字符d的应用。 01 #include <stdio.h> 02 int main(void) 03 { 04 int i=123456; /*初始化变量*/ 05 printf("%d\n",i); /*按%d格式输出数据*/ 06 printf("%5d\n",i); /*按%md格式输出数据*/ 07 printf("%7d\n",i); /*按%md格式输出数据*/ 08 return 0; 9 } 第6、7行中使用了%md形式,其中第6行的m=5,数据位数 6>m,输出原数据;第7行中的m=7,数据位数6<m,以前 面补空格的方式输出,所以在输出结果中第3行的123456前 多了一个空格。
6.2.2 格式控制字符
01 02 03 04 05 #include<stdio.h> int main(void) { int n1=0,n2=1,n3=-1; /*初始化三个变量*/ printf("%d,%o,%x\n",n1,n1,n1); /*分别按%d,%o,%x格式输出 n1*/ 06 printf("%d,%o,%x\n",n2,n2,n2); /*分别按%d,%o,%x格式输出 n2*/ 07 printf("%d,%o,%x\n",n3,n3,n3); /*分别按%d,%o,%x格式输出 n3*/ 08 return 0; 9 } 这个例子是在比较%d,%o,%x三种格式对输出同一个数结果有什么不同,特举了1, 0和-1三个具有代表性的数字进行试验。我们知道0既可以看成是正数,也可以看 成是负数,与运行时的计算机系统有关,有的系统把它作为正数存储,本次运行的 计算机就是这样,但也有的计算机把它作为负数。 8. e格式控制字符:以指数形式输出数据。 6. g格式控制字符:在%e和%f中自动选择宽度较小的一种格式输出。
6.2.1 格式化输出函数——printf()
在前面章节中我们用的最多的就是print()函数,但代码中包含 的%d、%f和%c有什么含义和区别呢?本节就来深入学习此 函数详细用法。 printf()函数,作用是将计算机中数据,按照特定的格式输出 到终端,使用户能从终端查看数据,它是输出数据的接口。使 用格式如下: printf("<格式化字符串>",<参数列表>); 例如: 01 int i=10,j=20; 02 printf(“欢迎来到C语言的世界!\n”); /*输出引号内的内容 并换行*/ 03 printf(“i=%d,j=%d\n”,i,j); /*输出变量i和j的值并换行 */
⑵ %-m.ns:与%m.ns相比是右端补空格。
6.2.2 格式控制字符
01 #include<stdio.h> 02 int main(void) 03 { 04 printf("%s\n","Hello"); /*按%s格式输出*/ 05 printf("%5.3s\n","Hello"); /*按%m.ns格式输出*/ 06 printf("%-5.3s\n","Hello"); /*按%-m.ns格式输出*/ 07 return 0; 8 } 这个例子是练习%m.ns格式和%-m.ns输出,并比较二者输出的区别。第4 行是原样输出,%s格式。第5行是%m.n格式输出,共m位,从“Hello” 中截取前3位,并在前面补两个空格。第6行与第5行的不能是空格是补在 字符的后端。若n>m时,m就等于n,保证字符显示n位。
6.2.1 格式化输出函数——printf()
【范例6-1】 printf函数的使用。
01 02 03 04 05 06 07 #include<stdio.h> int main(void) { int num; char r; float f; printf("请输入1个整数,1个字符,1个浮点型的数据:\n"); /*输出引号中的 内容并换行*/ 08 scanf("%d,%c,%f",&num,&r,&f); /*输入数据,给num,r,f分别赋值*/ 06 printf("输入的数据是:num=%d,r=%c,f=%f",num,r,f); /*输出变量的值 */ 10 printf("\n"); /*换行*/ 11 return 0; 12 } 此段代码定义了3个变量,分别是int、char和float类型,第7行没有参数是原样输出引 号中的内容后换行,第8行是输入数据,给num,r和f分别赋值,第6行是输出变 量的值,用到了格式控制字符%d、%c和%f,%d代表的是int类型的格式,%c 代表的是char类型的格式,%f代表的是float类型的格式,与后面的参数类型一一 对应。第10行的调用格式与第7行的一样,但第10行双括号内的是转义字符,所以 起到了换行的作用。
6.1 标准输入输出
此程序的代码如下。 01 #include<stdio.h> 02 int main(void) 03 { 04 int i; 05 printf("请输入1个整数:\n"); /*提示用户输入*/ 06 scanf("%d,",&i); /*读取输入数据*/ 07 printf("您输入的整数是:%d\n",i); /*输出数据 */ 08 return 0; 06 } 以上程序是通过printf()函数和scanf()函数来实现输入输出的, 这些函数都包含在C语言的库函数中。