第三章 C语言数据的输入与输出复习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符输入输出函数
putchar(x)函数:有参数 例:putchar(ch); putchar('A'); putchar(65);
每句只能输出一个字符数据。
getchar( )函数:无参数 从键盘读入一个字符(空格回车都算)。 程序执行到 getchar函数时,等待输入字符,直到按回 车才结束,回车前的所有输入字符都将逐个显示在屏幕上。 但只有第一个字符被getchar函数接收。 c=getchar();按回车符才可送出
当使用这两个函数时, 在程序的开头一定要加上:
#include <stdio.h>
字符输入输出函数
getch() 函数: 无参数。 getch() 的作用与 getchar 类似 , 都是从标准输入设备 (通常指键盘)读入一个字符。其调用形式分别为: getch( );
但 getch 函数 读 入的字 符 不会回 显 在屏幕 上 , 它 与 getchar 函数不同之处在于: getch 函数不必输入回车才 结束, 只要输入任意一个键, 该字符立即被接收, 程序继续 执行下一条语句。利用这一特点, 这两个函数经常用于交 互输入的过程中实现暂停功能, 或直接查看程序运行结果。
格式化输入函数scanf()
4、在用“%c”格式输入字符时,无需间隔符, 在这里,回车、Tab、空格字符和“转义字符”都 作为有效字符输入
#include "stdio.h" main() {char a,b,c; clrscr(); printf("input:\n"); scanf("%c%c%c",&a,&b,&c); printf("%c,%c,%c\n",a,b,c); } #include "stdio.h" main() {char a,b,c; printf("input:\n"); scanf("%c,%c, %c",&a,&b,&c); printf("%c,%c,%c\n",a,b,c); }
字符输入输出函数
例:输出单个字符 每次只能输出一个字符 #include "stdio.h" putchar(' '); 输出空格 main() { char a,b,c; 运行结果:ABC a='A'; A b='B'; B c='C'; C clrscr(); putchar(a);putchar(b);putchar(c);putchar('\n'); putchar(a);putchar('\n');putchar(b);putchar('\n');putchar (c); }
格式化输出函数printf()
(9)g格式符,用来输出实数.
它根据数值的大小,自动选f格式或e格式(选择输出时占宽度 较小的一种),且不输出无意义的零。 例:若a=123.456,则 printf("%f",a); 123.456001
printf("%g",a); 123.456
格式化输入函数scanf()
格式化输出函数printf()
例 输出实数时指定小数位数。 #include "stdio.h" main() { float a=123.456; printf("*%f*,*%10f*,*%10.2f*\n",a,a,a); printf("*%-10.2f*,*%.2f*\n",a,a); }
格式化输入函数scanf()
3、在格式字符串中插入其它字符 如果想在屏幕上输入字符来提示,应该使用printf函数; 如果用scanf格式控制字符串中插入其它字符,则输入时, 要求按一一对应的位置原样输入这些字符;
#include "stdio.h" main() 运行情况: {int a,b,c; input a,b,c:3 4 5 clrscr(); printf(“input:a,b,c\n“); scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\nf",a,b,c); } scanf(“input:a,b,c:%d%d%d",&a,&b,&c);
格式化输入函数scanf()
说明: 1、TC环境下,输入long整数时,用%ld;输入 double时,用lf; 2、格式说明的类型和输入项类型,应该一一匹配; float a;scanf(“%d”,&a); 不合法 3、在scanf函数中的格式字符前,可以一个整数指 定输入数据所占宽度,但不可对实型数指定小数宽 度; scanf(“%3d”,&a); 合法 scanf(“%3.2f”,&a); 不合法
3.4.4格式输入函数与格式输出函数
printf函数是格式化输出函数, 用于向标准输出设 备(通常指定为屏幕)按规定格式输出数据。 printf函数的调用格式为: printf(格式控制字符串, 输出列表); 其中格式化字符串包括两部分内容:一是普通字符 按原样输出,转义字符输出它所代表的字符;二是 “输出格式说明”, 以“%”开始,后跟格式字符, 用 来指定输出数据的格式。如 %d 输出int型数据 输出列表是若干个需要输出的数据项, 称为函数的 参数, 可以是常量、变量或表达式, 各参数之间用 ","分开。
6、当输入数据少于输入项时,程序等待输入,直到满足要 求为止,当输入的数据多于输入项时,多余数据并不消失, 而是留做下一个输入操作的输入数据;
格式化输入函数scanf()
输入时个数不够,会到下一行取,太多个则放在缓冲区,如 scanf("%d%d", &a, &b, &k); 当输入 1 2 3 则3不送k, 仍放在缓冲区。 接着执行: scanf("%d%d",&i); 输入4 后, 程序运行结果是:a=1,b=2,k=5852,i=3 printf与scanf对实数处理时的区别:
格式化输出函数printf()
(4) 在输出的数字前加"+"号
使用%+格式字符 (如%+d、%+f等), 可在输出的数字前 加"+"号, 例如
printf("%+d,%+10.2f",123,12345.678);
输出结果如下:
+123, +12345.68。 例:int x=1234,y=123,z=12; printf("%4d+%3d+%2d", x, y, z) 输出结果:1234+123+12
scanf函数的功能是从标准输入流中按指定格式 接收输入的数据; scanf函数的调用格式为: scanf(格式控制字符串, 地址列表);
格式控制字符串同printf
地址列表是由若干个地址组成的表列,可以是变 量的地址,或字符串的首地址
格式化输入函数scanf()
例:用scanf函数输入数据 #include "stdio.h" a在内存中的地 main() 址 &是地址运算符 {int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\nf",a,b,c); } 运行情况: 3 4 5<回车> (输入a,b,c的值) 3 ,4 ,5 (输出a,b,c的值)
运行结果: *123.456001* *123.46 *
*123.456001* *123.46*
*
123.46*
格式化输出函数printf()
(8)e格式符,以指数形式输出实数 main() {float a=123.456; clrscr(); printf("a=%e\n",a); a=1.23456e+02 printf("a=%10e\n",a); a=1.23456e+02 printf("a=%10.2e\n",a); a= 1.2e+02 printf("a=%-10.2e\n",a); a=1.2e+02 printf("a=%.2e\n",a); a=1.2e+02 }
C语言数据的输入与输出复习
数据输入输出的概念
所谓输入输出是以计算机主机为主体而言的。 输出:从计算机向外部输出设备(显示器,打印机) 输出数据。输入:从输入设备(键盘,鼠标,扫描仪) 向计算机输入数据 C语言本身不提供输入输出语句,输入和输出操作 是由C函数库中的函数来实现的 例如: 字符输入函数:getchar 字符输出函数:putchar 格式输入函数: scanf 格式输出函数: printf 字符串输入函数:gets 字符串输出函数:puts
键盘输入:a, b, c<回车>
键盘输入:abc<回车>
格式化输入函数scanf()
例:以下程序的运行结果是什么?
#include "stdio.h" main() {char c1,c2; int a,b; clrscr(); scanf("%d%c%d%c",&a,&c1,&b,&c2); printf("c1=%c,c2=%c,a=%d,b=%d\n",c1,c2,a,b); }
(2) 长度修饰符: 长度修饰符加在%和格式字符之间。 长度修饰符 作 用 格式字符是d,i,o,u,x,X时, 用于输出长整型数 据(long int) 格式字符是e,E,f,g,G时, 用于输出长双精度 实型数据(long double)
l L
从上表可知:双精度实型数据的输出不要用%lf, 只要用%f即可。但长双精度实型数据的输出必须加 长度修饰符L, 例如%Lf、%Le等。
格式化输出函数printf()
printf函数的输出格式说明
每个格式说明都必须用%开头,以一个格式字
符作为结束,在此之间根据需要可以插入"宽度说
明"、长度修饰符'l'和'L"等。
(1)格式字符:格式字符用于规定输出不同的数据 类型,格式字符和它们的作用如下表,可详见附录 D。
格式化输出函数printf()
putchar ('\101'); A
字符输入输出函数
例 输入单个字符。 #include "stdio.h" main() { char c; c=getchar(); putchar(c); putchar('\n'); }
运行程序: 从键盘输入字符a 按Enter键 屏幕上将显示输出的 字符a a a
实型数据 float double long double
printf %f
%f 或 %lf %Lf
scanf %f %lf %Lf
格式化输入函数scanf()
语句: scanf("%3d%8f%d", &i,&f,&j); 键盘输入数据:123456.7891234回车 结果:i为123, f为456.7891, j为234 说明:遇到宽度3和8,数据项结束。 语句: scanf("%ld%c%d", &k,&ch,&i); 键盘输入数据:123456.7890回车 结果:k为123456, ch为'.', i的值为7890 说明:遇到非法字符'.',数据项结束。
键盘输入:1 x 2 y<回车> 会是什么结果?
正确输入:1x 2y<回车>
ห้องสมุดไป่ตู้
格式化输入函数scanf()
5、在格式输入串中,格式 说明符的个数应该与输入 项的个数相同,若格式符 个数少于输入项,scanf函 数按格式符的项目结束输 入,多余的输入项没有得 到新的数据;若格式符的 个数多于输入项,scanf函 数按输入项的数据结束输 入,多余的格式符不起作 用; main() { int a,b,k,i; clrscr(); scanf("%d%d",&a,&b,&k); scanf("%d%d",&i); printf("a=%d,b=%d, k=%d,i=%d\n",a,b,k,i); getch(); }
实型数据的输出宽度
main() {float a=123.456; printf("a=%f\n",a); printf("a=%4f\n",a); printf("a=%15f\n",a); printf("a=%.2f\n",a); printf("a=%.5f\n",a); }
a=123.456001 a=123.456001 a= 123.456001 a=123.46 a=123.45600
格式化输出函数printf()
(5) 输出数据所占的宽度 ①整型数据的输出宽度 %md、%mu、%mo、%mx, 按m宽度输出数据, 不足m个位数,左补空格(数据右对齐)。 ②实型数据的输出宽度 %m.nf、%m.ne、%m.ng,数据输出的总宽占m 列,其中小数部分占n列, 若数据自身宽度小于m列,则左 补空格。 ③字符串的输出宽度 %ms 输出宽度占m列,若字符串宽度小于m列, 左补空格,若字符串宽度大于m列则原样输出字串。