第2章 常用输入输出函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

||
|
|
|
格式说明 输出表列
若a=3,b=4 输出为 a=3 b=4
2.2.2 printf函数的格式字符
• 格式字符用以指定输出项的数据类型和输出格式。 • 基本的格式字符 有以下几种:
⑴ %d %d:按十进制整型数据的实际长度输出。 %md:按照指定宽度m输出,实际位数小于m,
则左端补空格,位数大于m,则按实际位数输出。 %-md:实际位数小于m,则右端补空格。 %ld:输出长整型数据。
(3) %f
%f 用来输出实数(包括单、双精度),以 小数形式输出,不指定整个字段的长度,由 系统自动指定。
一般的处理方法是:整数部分全部输出,并 输出6位小数。
%m.nf 指定数据占m列,其中小数位数为 n列,如果整体位数小于m,则左端补空格 (右对齐)。
%-m.nf (左对齐)
例 输出实数时的有效位数。
scanf(“%d%d%d”,&a,&b,&c);
Fra Baidu bibliotek
个数据之间以一个或 多个空格间隔,也可
printf(“a=%d,b=%d,c=%d\n”,a,以b用,Ecn)t;er键、
}
Tab键。
运行情况:
请输入a,b,c:
345
(输入a,b,c的值,)
a=3,b=4,c=5
(输出a,b,c的值)
• scanf函数的格式说明与printf函数的相似, 以%开始,以一个格式字符结束,中间可插 入附加的字符。 例:
2.2 printf函数
• printf函数(格式输出函数)的作用是向系 统隐含指定的输出设备(显示器)输出若干 个任意类型的数据 。
• printf函数的一般格式为: printf(格式控制,输出表列);
例: printf(”%d,%c\n”,i,c);
• printf函数的参数包括两部分: (1)“格式控制”是用双引号括起来的字符串,也 称“转换控制字符串”,它包括两种信息。
scanf(”%d%d%d”,&a,&b,&c);
/* 格式控制字符串中包含3个格式说明符%d */
scanf(”a=%db=%dc=%d”,&a,&b,&c);
/* 格式控制字符串中包含格式说明符以外的字 符 */
说明: (1)scanf函数中的“格式控制”后面应当是变量地
址,而不应是变量名。(普通变量名前必须要加 取地址运算符&,只有数组名和指针变量名前不需 要加) (2) 如果在“格式控制”字符串中除了格式说明以 外还有其他字符,则在输入数据时在对应位置应 输入与这些字符相同的字符。 (3) 在用“%c”格式输入字符时,空格字符和 “转义字符”都作为有效字符输入。例2-14
unsigned int a=65535;int b=-2; printf(“a=%d,%o,%x,%u\n”,a,a,a,a); printf(“b=%d,%o,%x,%u\n”,b,b,b,b); }
说明: • 除了X,E,G外,其他各式字符必须用小写。 • 可以在printf函数中的“格式控制”字符串中包含转
}
(4)s格式符,用来输出一个字符串。 例: printf(“%s”,”CHINA”);
输出字符串:CHINA %ms:输出字符串占m列,串长小于m,则 左补空格,串长大于m,则全部显示 %-ms:输出字符串占m列,串长小于m,则 右补空格,串长大于m,则全部显示 %m.ns:输出m列,只取字符串中左端n个字 符,串小于m,则左补空格 %-m.ns:输出m列,只取字符串中左端n个 字符,串小于m,则右补空格
输出为: -1,37777777777
(7) %x。以16进制数形式输出整数。同样不会 出现负的十六进制数。
例:
int a= -1; printf(“%x,%o,%d”,a,a,a); 输出结果为
ffffffff,37777777777,-1 同样可以用 “%lx”输出长整型数,也可以 指定 输出字段的宽度,如“%12x”。
例 输出双精度数时的有效位数。
#include<stdio.h> void main() {double x,y;
x=22222222.22222222; y=33333333.33333333; printf("%f\n", x+y); }
运行结果:
55555555.555556
x和y是双精度变量,能 提供16位精度,但是由 于用%f格式输出,只能 输出6位小数 ,有两位
(2) %c %c:用来输出一个字符。 %mc:输出字符数据的宽度为m,位数不
足时在左侧补空格。
c=‘a’;
printf(“%3c”,c); 输出:_ _ a
• 例: • #include<stdio.h> • void main() •{ • char ch='A'; • int x=97; • printf("%c,%3c,%d\n",ch,ch,ch); • printf("%c,%d,%4d\n",x,x,x); •}
(三).在使用系统库函数时,要用预编译命令 “#include”将有关的“头文件”包括到用 户源文件中。
例如:在调用标准输入输出库函数时,文件开头 应该有:
#include <stdio.h>
头文
或:#include “stdio.h”

两种方式查找头文件的路径不同
"stdio.h"从当前工程目录下开始搜索文件 <stdio.h>从库文件目录下开始搜索文件
义字符。 • 一个格式说明必须以“%”开头,以9个格式字符之
一为结束,中间可以插入附加格式字符。 • 想输出%,则应该在格式控制字符串中用连续两个%
表示 • 例如:
printf("一年期利率为%4.2f%%\n",rate);
2.3 scanf函数
• scanf函数作用:格式化的输入函数,按指定 格式从键盘读入数据,存入地址表指定的存储 单元中(按照变量在内存的地址将变量值存进 去)。
说明:
• 对unsigned型变量所需要的数据,可以用%u, %d或%o,%x格式输入。
• 可以指定输入数据所占的列数,系统自动按它截 取所需数据。例2-16
• 输入数据时不能规定精度(%m.nf)。 • 如果在%后有一个“*”附加说明符,表示跳过
它指定的列数。例2-18 • 在输入数据时,空格、 “回车”、“跳格”
#include<stdio.h>
void main() {float x,y;
运行结果: 555555.562500
x=222222.222;y=333333.333;
printf("%f\n",x+y);
}
结果中只有前七位是有
效数字。由于x和y是单
精度变量,所以x+y也只
能保证7位的精度,后面
几位是没有意义的。
• #include<stdio.h> • void main() •{ • int a=-2,b=25,c=123; • long x=456710; • printf("%d,%4d,%-4d,\n",a,b,b); • /*%-4d中的负号表示显示时在右端补空格*/ • printf("%5d,%2d\n",c,c); • printf("ld,%8ld\n",x); •}
第2章 常用输入输出函数
• 2.1 C语言的输入输出概述 • 2.2 printf函数 • 2.3 scanf函数 • 2.4 字符数据的输入输出 • 2.5 字符串的输入输出
2.1 C语言的输入输出概述
(一).所谓输入输出是以计算机主机为主体而言的 输出:从计算机向外部输出设备(显示器,打印机)
被省掉了。
例 输出双精度数时的有效位数。
#include<stdio.h> void main() {
float x=123.45; double y=456.5263789;
printf("%f,%7.2f\n",x,x); printf("%f,%7.2f\n",y,y); }
例 求3个圆的周长,输出结果时上下按小数点对齐,取两
void main()
{
char a,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘ \n’); putchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);
(8) %u。用来输出无符号(unsigned)型数据,以 十进制整数形式输出。
一个有符号整数(int型)也可以用%u格式输出; 反之,一个unsigned型数据也可以用%d格式输 出。
unsigned型数据也可用%o或%x格式输出。
例 无符号数据的输出。
#include<stdio.h> void main() {
1.234560 e+002
6列
5列
C编译系统自动指定给出数字部分 的小数位数为6位,指数部分占5位
(6) %o。以8进制整数形式输出。由于是将 内存单元中的各位的值(0或1)按八进制 形式输出,因此输出的数值不带符号,即将 符号位也一起作为八进制数的一部分输出。
例:int a=-1; //4字节为例 printf("%d,%o",a,a);
(Tab)键或遇非法输入,认为该数据结束。 例2-20
2.4 字符数据的输入输出
2.4.1 putchar函数
• putchar函数(字符输出函数)的作用是向 终端输出一个字符。
• 一般形式为
putchar(c);
c可以是字符型/ 整型变量或常量
例 输出单个字符。
运行结果:B O
Y
#include<stdio.h>
}
运行结果:BOY
3.5.2 用getchar函数输入一个字符
• getchar函数(字符输入函数)的作用是从计算 机终端输入一个字符。
• getchar getchar()
函数的值就是 从输入设备得
到的字符
注意:如果输入多个字符,只接受第一个字符
• #include<stdio.h> • void main() •{ • char ch;
• 一般格式:scanf(格式控制,地址表列);
同printf函数
是由若干个地址组成的表列,可以是变量的 地址,或字符串的首地址
例 用scanf函数输入数据。
#include<stdio.h> void main() {
int a,b,c;
a在内存中的地 址
&是地址运算符
printf(“请输入a,b,c:\n”); 输入数据时,在两
① 格式说明。格式说明由“%”和格式字符组 成,如%d、%f等。它的作用是将输出的数据 转换为指定的格式输出。
② 普通字符或转义字符。即需要原样输出的字 符。
(2) “输出表列”是需要输出的一些数据,可以是 常量、变量或表达式。
• printf函数的例子:
printf(“a=%d b=%d”,a,b)
• #include<stdio.h>
• void main()
•{
• printf(“%3s,%7.2s,%.4s,%-5.3s.\n", "STUDENT", "STUDENT", "STUDENT", "STUDENT");
•}
(5)e格式符,用格式说明 %e指定以指数形式 输出实数。
例:printf(″%e″,123.456);输出如下
运行程序:
从键盘输入字符‘a’按 Enter键 屏幕上将显示输出的字符‘a’ a↙ a
• printf("input a character\n");
• ch=getchar(); • ppuurittnccthhfa(a“rr(%(gcceh”t,c)g;heatrc(h))a;r());
输出数据 输入:从输入设备(键盘,鼠标,扫描仪)向计算机
输入数据.
(二).C语言本身不提供输入输出语句,输入和 输出操作是由C函数库中的函数来实现的
例如: 字符输入函数:getchar 字符输出函数:putchar 格式输入函数:scanf 格式输出函数:printf 字符串输入函数:gets 字符串输出函数:puts
位小数。 #include <stdio.h> #define PI 3.1415926 void main ( ) {double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3;
s1=2.0*PI*r1; s2=2.0*PI*r2; s3=2.0*PI*r3;
printf(“s1=%10.2f\ns2=%10.2f\ns3=%10.2f\n",s1,s2 ,s3);
相关文档
最新文档