c语言 输入和输出ppt课件
合集下载
C语言的程序设计-数据的输入和输出
共 25 页 第 3 页
4.1 数据输出 4.1.1 格式输出函数
1. 函数的基本功能 格式: 格式控制串, 格式:printf(格式控制串,输出表列) 格式控制串 输出表列) 功能:从标准输出设备上, 功能:从标准输出设备上,按指定的格式输出对应 的变量。 的变量。 2. 函数说明: 函数说明 (1) 格式控制串由双引号括起来,由“%”和格式符 格式控制串由双引号括起来, 和格式符 以及普通字符 即需要原样输出的字符组成)。 普通字符( 以及普通字符(即需要原样输出的字符组成)。 (2)输出表列是需要输出的一些数据 可以是常量、 输出表列是需要输出的一些数据, (2)输出表列是需要输出的一些数据,可以是常量、 变量或表达式。 变量或表达式。 (3)输出的参数必须与格式控制符中的格式说明在类 (3)输出的参数必须与格式控制符中的格式说明在类 个数和位置上一一对应。 型、个数和位置上一一对应。
共 25 页
第 15 页
(8) e格式 以指数形式输出实数。 格式 以指数形式输出实数。 1) %e 不指定输出数据所占的宽度和数字部分小数 位数,由系统自动指定给出 位小数,指数部分占 由系统自动指定给出6位小数 指数部分占5位 其 位数 由系统自动指定给出 位小数 指数部分占 位,其 占一位,指数符号占一位,指数 中“e”占一位 指数符号占一位 指数占3位.数值按标 占一位 指数符号占一位 指数占 位 数值按标 准化指数形式输出(小数点前有 位非零数字)。 小数点前有1位非零数字 准化指数形式输出 小数点前有 位非零数字)。 例如: 例如 printf(“%e”,123.456); 输出:1.234560e+002 输出
4.1 数据输出 4.1.1 格式输出函数
1. 函数的基本功能 格式: 格式控制串, 格式:printf(格式控制串,输出表列) 格式控制串 输出表列) 功能:从标准输出设备上, 功能:从标准输出设备上,按指定的格式输出对应 的变量。 的变量。 2. 函数说明: 函数说明 (1) 格式控制串由双引号括起来,由“%”和格式符 格式控制串由双引号括起来, 和格式符 以及普通字符 即需要原样输出的字符组成)。 普通字符( 以及普通字符(即需要原样输出的字符组成)。 (2)输出表列是需要输出的一些数据 可以是常量、 输出表列是需要输出的一些数据, (2)输出表列是需要输出的一些数据,可以是常量、 变量或表达式。 变量或表达式。 (3)输出的参数必须与格式控制符中的格式说明在类 (3)输出的参数必须与格式控制符中的格式说明在类 个数和位置上一一对应。 型、个数和位置上一一对应。
共 25 页
第 15 页
(8) e格式 以指数形式输出实数。 格式 以指数形式输出实数。 1) %e 不指定输出数据所占的宽度和数字部分小数 位数,由系统自动指定给出 位小数,指数部分占 由系统自动指定给出6位小数 指数部分占5位 其 位数 由系统自动指定给出 位小数 指数部分占 位,其 占一位,指数符号占一位,指数 中“e”占一位 指数符号占一位 指数占3位.数值按标 占一位 指数符号占一位 指数占 位 数值按标 准化指数形式输出(小数点前有 位非零数字)。 小数点前有1位非零数字 准化指数形式输出 小数点前有 位非零数字)。 例如: 例如 printf(“%e”,123.456); 输出:1.234560e+002 输出
C语言ppt课件(完整版)
程 序:} 为了实现一定的目的而用计算机语 言编写的一系列指令语句的集合。
返回
下一页
六、走近C语言、认识C语言
由加法器可执行程序引起的几个问题?
1、编写程序需要遵循一定的格式吗?是什么样 的格式呢?
2、输入的数据放在什么地方?
number1 number2
56
25
sum 81
3、如何使从键盘输入的数据到指定的地址中呢? 4、如何将计算好的结果数据输出来?
11010011 11010011
01110001 10110111
v0o1i0d1h0a0n1d1le_0m11e1n0u(0v0o1id)1;1010011 01110001 11010011 01110001 11010011
i1n1t1m1e0n0u0_0se0le1c1t1(v0o0id0)1; 11010011 01110001 11010011 01110001 11010011
返 回 上一页
下一页
主函数
main( ) {int number1,number2; int i; printf(“请输入您的选择 1:+ 2:-”); scanf("%d",&i); if(i==1) sum(number1,number2); if(i==2) sub(number1,number2); }
返回
下一页
六、走近C语言、认识C语言
由加法器可执行程序引起的几个问题?
1、编写程序需要遵循一定的格式吗?是什么样 的格式呢?
2、输入的数据放在什么地方?
number1 number2
56
25
sum 81
3、如何使从键盘输入的数据到指定的地址中呢? 4、如何将计算好的结果数据输出来?
11010011 11010011
01110001 10110111
v0o1i0d1h0a0n1d1le_0m11e1n0u(0v0o1id)1;1010011 01110001 11010011 01110001 11010011
i1n1t1m1e0n0u0_0se0le1c1t1(v0o0id0)1; 11010011 01110001 11010011 01110001 11010011
返 回 上一页
下一页
主函数
main( ) {int number1,number2; int i; printf(“请输入您的选择 1:+ 2:-”); scanf("%d",&i); if(i==1) sum(number1,number2); if(i==2) sub(number1,number2); }
C语言数据的输入输出ppt课件
15
整型数据的输出宽度
main() { int a=34,b=12345;
clrscr(); printf("%d\n",a); printf("%10d\n",a); printf("%-10d\n",a); printf("%4d\n",b); }
34 34
34 12345
16
实型数据的输出宽度
(5)c格式符,用来输出一个字符。
如:char d=′a′; printf(″%c″,d); 输出字符′a′. 一个整数,只要它的值在0~255范围内,可以用“%c”
使之按字符形式输出,在输出前,系统会将该整数作为ASCII码 转换成相应的字符;一个字符数据也可以用整数形式输出。
22
格式化输出函数printf()
19
格式化输出函数printf()
(2) o格式符。以八进制整数形式输出。
输出的数值不带符号,符号位也一起作为八进制数的一部分输出。
例:int a=-1;
printf("%d,%o",a,a);
-1在内存单元中的存放形式(以补码形式存放)如下:
1111111111111111
输出为:
-1,177777
第3章 数据的输入与输出(2)
1
3.4.3 字符输入输出函数 3.4.4 格式化输入输出函数的一般使用
整型数据的输出宽度
main() { int a=34,b=12345;
clrscr(); printf("%d\n",a); printf("%10d\n",a); printf("%-10d\n",a); printf("%4d\n",b); }
34 34
34 12345
16
实型数据的输出宽度
(5)c格式符,用来输出一个字符。
如:char d=′a′; printf(″%c″,d); 输出字符′a′. 一个整数,只要它的值在0~255范围内,可以用“%c”
使之按字符形式输出,在输出前,系统会将该整数作为ASCII码 转换成相应的字符;一个字符数据也可以用整数形式输出。
22
格式化输出函数printf()
19
格式化输出函数printf()
(2) o格式符。以八进制整数形式输出。
输出的数值不带符号,符号位也一起作为八进制数的一部分输出。
例:int a=-1;
printf("%d,%o",a,a);
-1在内存单元中的存放形式(以补码形式存放)如下:
1111111111111111
输出为:
-1,177777
第3章 数据的输入与输出(2)
1
3.4.3 字符输入输出函数 3.4.4 格式化输入输出函数的一般使用
C语言第5讲 C语言的数据类型及格式输入与格式输出
浮点型
double(双精度浮点型)
void类型
long double(长双精度浮点型)
T*(指针类型)
enum(枚举) struct{…}(结构体类型)
用户定制类型
union{…}(共用体类型) T[…](数组类型)
构造类型
文件类型
函数类型
基本数据类型的特征
• C语言提供的基本数据类型包括 • char(字符)型 • int(整)型 • float(单精度实)型 • double(双精度实)型。
使用科学记数法(指数形式)时,要求e的左边必须 有数值部分(有效数字),可以是整数,也可以是小数 形式;指数必须是整数形式。例如,e5、2e1.23、.e5 等都是不合法的。
符号常量
前面介绍的常量都是直接常量,从字面 上即可直接看出它们的值是什么,因此又 称“字面常量”。符号常量则是在一个程 序(或程序的一部分)中指定的用名字代表的 常量,从字面上不能直接看出其类型和值。
• 大多数编译系统对一个带符号整数的数值范围处 理为:-2n-1 ~ 2n-1-1。其中n为该整数所占的比 特数。
• 也有一些编译系统对一个带符号整数的数值范围 处理为:-(2n-1 –1)~ 2n-1-1。如果一个整数所占 的比特数为16,则该想整数的苑围为-32 767 ~ 32 767。
不同长度整型数据的取值范围
第2章 C语言程序设计基础PPT课件
C语言程序设计
第2章 C语言程序设计基础
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
2
本章主要内容
2.1 算法与程序设计步骤 2.2 数据类型 2.3 常量和变量 2.4 函数 2.5 运算符和表达式 2.6 算术运算符与算术表达式 2.7 赋值运算符与赋值表达式 2.8 逗号运算符与逗号表达式 2.9 数值型数据间的混合运算
只有S2比较复杂,需要细化分成 S2.1和S2.2两个独立的子任务:见 (d)
S1:输入三个数 S2:找出最大数 S3:输出最大数
(a)
S1:输入a、b、c (b)
S3:输出max (c)
S2.1:找出a、b中的 最大者放max中 S2.2:找出c和max中 的最大者放max中
(d)
20
2.1 算法与程序设计步骤
五、符号常量
用一个标识符代表的一个常量 定义方法:
#define 标识符 常量 习惯上,符号常量名用大写,变量用小写
例: #define PRICE 30
void main( )
{ int num,total;
num = 10;
/* 10 是常量 */
total = num * PRICE;
/* PRICE是符号常量 */
第2章 C语言程序设计基础
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
2
本章主要内容
2.1 算法与程序设计步骤 2.2 数据类型 2.3 常量和变量 2.4 函数 2.5 运算符和表达式 2.6 算术运算符与算术表达式 2.7 赋值运算符与赋值表达式 2.8 逗号运算符与逗号表达式 2.9 数值型数据间的混合运算
只有S2比较复杂,需要细化分成 S2.1和S2.2两个独立的子任务:见 (d)
S1:输入三个数 S2:找出最大数 S3:输出最大数
(a)
S1:输入a、b、c (b)
S3:输出max (c)
S2.1:找出a、b中的 最大者放max中 S2.2:找出c和max中 的最大者放max中
(d)
20
2.1 算法与程序设计步骤
五、符号常量
用一个标识符代表的一个常量 定义方法:
#define 标识符 常量 习惯上,符号常量名用大写,变量用小写
例: #define PRICE 30
void main( )
{ int num,total;
num = 10;
/* 10 是常量 */
total = num * PRICE;
/* PRICE是符号常量 */
《c语言程序设计教学资料》第4章---键盘输入与屏幕输出
第四章键盘输入与屏幕输出
第四章键盘输入与屏幕输出
内容提要:
字符输入输出函数
格式输入输出函数
所谓输入输出是以计算机主机为主体而言的
输出:从计算机向外部输出设备(显示器,打印机)输出数据。
输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据。
C语言本身不提供输入输出语句,输入和输出操作是由C函数库 中的函数来实现的 例如:字符输入函数: getchar 字符输出函数:putchar 格式输入函数: scanf 格式输出函数: printf
字符输入/输出
#include <stdio.h> main () { char a,b,c; putchar(getchar()); a=getchar(); b=getchar(); putchar(getchar()); c=getchar(); putchar(getchar()); putchar(a); putchar(b); putchar(c); putchar('\n'); }
格式化输出
例: int a=1234;
float f=123.456;
static char c[]=“Hello,world!”; printf(“%8d\n%-8d\n”,a,a); printf(“%10.2f\n%-10.1f\n”,f,f); printf(“%10.5s\n%-10.3s\n”,c,c);
第四章键盘输入与屏幕输出
内容提要:
字符输入输出函数
格式输入输出函数
所谓输入输出是以计算机主机为主体而言的
输出:从计算机向外部输出设备(显示器,打印机)输出数据。
输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据。
C语言本身不提供输入输出语句,输入和输出操作是由C函数库 中的函数来实现的 例如:字符输入函数: getchar 字符输出函数:putchar 格式输入函数: scanf 格式输出函数: printf
字符输入/输出
#include <stdio.h> main () { char a,b,c; putchar(getchar()); a=getchar(); b=getchar(); putchar(getchar()); c=getchar(); putchar(getchar()); putchar(a); putchar(b); putchar(c); putchar('\n'); }
格式化输出
例: int a=1234;
float f=123.456;
static char c[]=“Hello,world!”; printf(“%8d\n%-8d\n”,a,a); printf(“%10.2f\n%-10.1f\n”,f,f); printf(“%10.5s\n%-10.3s\n”,c,c);
常用的C语言 输入与输出
常用的C语言输入与输出及在ACM题目要求中的使用
一.输入语句及参数
C语言的从键盘输入的函数是scanf,其作用相当于大家所学的cin,函数格式如下:
int a;
scanf(“%d”,&a);
这里%d对应于类型int, %d的%表示此处开始识别数据类型,d表示数据类型为普通十
进制数(取decimal的首字母).
&a的a为需要输入的变量名,&为取地址运算符。
所以这个输入语句可以理解为“在变量a所在的地址处输入一个格式为十进制的值”。
以下是一些简单的scanf使用例子:
1. int a,b,c; scanf(“%d%d%d”,&a,&b,&c);
2. long a; scanf(“%ld”,&a); // ld 即long decimal
3. float a; scanf(“%f”,&a);
4. double a; scanf(“%lf”,&a); // lf即long float
5. char c; scanf(“%c”,&c); // c即character
6. char str[100]; scanf(“%s”,&str[0]); // s即string,此处&str[0]表示以str[0]为起始位置输入
7. int a; float b; double c; scanf(“%d%f%lf”,&a,&b,&c); //注意对应数据类型的输
入
8. char str1[100],str2[100]; scanf(“%s%s”,&str1[0],&str2[0]); //输入中间用回车或空格分
输入和输出处理PPT课件
• 文本文件的最大的优点是可以用文本编辑器进行读写,而二进制文件的所有读写必 须由程序完成。
第10页/共23页
File类
File类主要用来描述系统中的文件在磁盘上的存储情况,而File类的对象主要 用来获取文件本身的一些信息,例如文件所在的目录、文件的长度、文件读写权限 等,此外,还可以用File对象来对文件系统做一些查询与设置的动作,但不涉及对 文件的读写操作。File 类的实例是不可变的。也就是说,一旦创建,File 对象表示 的抽象路径名将永不改变。
FileInputStream(File file) FileInputStream(FileDescription fdObj) FileInputStream(String name)
第12页/共23页
FileInputStream/ FileOutpuБайду номын сангаасStream类
本地文件读写编程的基本过程为: (1)生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为 FileOutputStream类); (2)处理I/O异常; (3)调用FileInputStream或FileOutputStream类中的功能函数如read()、write(int b)等)读写 文件内容; (4)关闭文件close()。
第21页/共23页
串行化的注意事项
第10页/共23页
File类
File类主要用来描述系统中的文件在磁盘上的存储情况,而File类的对象主要 用来获取文件本身的一些信息,例如文件所在的目录、文件的长度、文件读写权限 等,此外,还可以用File对象来对文件系统做一些查询与设置的动作,但不涉及对 文件的读写操作。File 类的实例是不可变的。也就是说,一旦创建,File 对象表示 的抽象路径名将永不改变。
FileInputStream(File file) FileInputStream(FileDescription fdObj) FileInputStream(String name)
第12页/共23页
FileInputStream/ FileOutpuБайду номын сангаасStream类
本地文件读写编程的基本过程为: (1)生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为 FileOutputStream类); (2)处理I/O异常; (3)调用FileInputStream或FileOutputStream类中的功能函数如read()、write(int b)等)读写 文件内容; (4)关闭文件close()。
第21页/共23页
串行化的注意事项
输入和输出
指定浮点值保留的小数位数 浮点值小数点对齐 输出数据的右对齐和左对齐 将直接字符插入到输出数据中 将浮点数按照指数形式输出 将整数按照八进制或十六进制形式输出 按指定的域宽和精度输出数据
2024/3/28
9
说明:
<格式控制串>描述了输出数据的格式。 可以包含3种类型的 字符
格式指示符, 则被参数列表中相应的数据替换 转义字符,按其含义输出相应的特殊符号 普通字符,按照原样输出
double d1,d2;
和000是无意义的,因为它们
d1=1111111111111.111111111; 超出了有效数字的范围。
d2=2222222222222.222222222;
printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);
printf("d1+d2=%lf\n",d1+d2);
printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);
printf("num1=%ld\n",num1); } 程序运行结果如下: num1=123,num1=□□123,num1=123□□,num1=123 num2=123456,num2=□□123456,num2=123456 num1=16908411
2024/3/28
9
说明:
<格式控制串>描述了输出数据的格式。 可以包含3种类型的 字符
格式指示符, 则被参数列表中相应的数据替换 转义字符,按其含义输出相应的特殊符号 普通字符,按照原样输出
double d1,d2;
和000是无意义的,因为它们
d1=1111111111111.111111111; 超出了有效数字的范围。
d2=2222222222222.222222222;
printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);
printf("d1+d2=%lf\n",d1+d2);
printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);
printf("num1=%ld\n",num1); } 程序运行结果如下: num1=123,num1=□□123,num1=123□□,num1=123 num2=123456,num2=□□123456,num2=123456 num1=16908411
C语言第3章_数据的输入输出
9/22
例 int a=1234; float f=123.456; printf("%8d,%2d\n",a,a); printf("%f,%8.1f,%.2e\n",f,f,f);
运行 ----1234,1234 结果: 123.456001, ---123.5, 1.23e+002
10/22
14/22
使用scanf应注意: scanf()的格式控制字符串中的普通字符不是用于 输出的,都是要求输入的。 scanf(“x=%d”,&x); “x=”在运行时要求从键盘输 入 参数的第二部分一定是地址列表,不能是表达式,记 得在变量前加上&。
scanf( “%d%d”,a,b); /*编译时不出现错误,执行结果会出现混乱*/
例 scanf(“%d%d”,&a,&b); 地址表:变量的地址,用取地址运算符 输入:10 16 & 格式控制字符串中包括:普通字符、转 例 scanf(“a=%d”,&a); 义字符和格式说明。 输入:a=10
13/22
scanf格式字符
d(D) o(O) x(X) i(I) u(U) c s f(e,g,G) 十进制整数 八进制整数 十六进制整数 自动根据数头分辨十、八、十六进制 无符号十进制整数 单个字符 字符串 实数
2/22
例 int a=1234; float f=123.456; printf("%8d,%2d\n",a,a); printf("%f,%8.1f,%.2e\n",f,f,f);
运行 ----1234,1234 结果: 123.456001, ---123.5, 1.23e+002
10/22
14/22
使用scanf应注意: scanf()的格式控制字符串中的普通字符不是用于 输出的,都是要求输入的。 scanf(“x=%d”,&x); “x=”在运行时要求从键盘输 入 参数的第二部分一定是地址列表,不能是表达式,记 得在变量前加上&。
scanf( “%d%d”,a,b); /*编译时不出现错误,执行结果会出现混乱*/
例 scanf(“%d%d”,&a,&b); 地址表:变量的地址,用取地址运算符 输入:10 16 & 格式控制字符串中包括:普通字符、转 例 scanf(“a=%d”,&a); 义字符和格式说明。 输入:a=10
13/22
scanf格式字符
d(D) o(O) x(X) i(I) u(U) c s f(e,g,G) 十进制整数 八进制整数 十六进制整数 自动根据数头分辨十、八、十六进制 无符号十进制整数 单个字符 字符串 实数
2/22
c语言 ppt课件
系统软件
C语言也广泛应用于系统软件 开发,如编译器、数据库管理
系统和网络协议栈等。
02
C语言基础语法
数据类型
数据类型
定义变量时,必须指定其数据类 型,以便编译器了解如何存储和 操作该变量。C语言中的数据类 型包括整型、浮点型、字符型等
。
整型
用于存储整数,包括short、int 、long等类型。
段错误
访问不属于自己内存段的地址,通常是由于数组越界或野指 针引起的。
类型转换和溢出问题
类型转换
不恰当的类型转换可能导致数据丢失或溢出。例如,将大数转换为小数或将小 数转换为大数。
溢出问题
当一个数超出了其表示范围时,会发生溢出。整数溢出可能导致结果错误,浮 点数溢出则会导致精度损失。
06
C语言发展趋势和展望
05
C语言常见问题和陷阱
内存泄漏和野指针
内存泄漏
当动态分配的内存未被释放时,会导 致内存泄漏。长时间运行程序会导致 可用内存逐渐减少,影响程序性能。
野指针
指针被释放后仍然被使用,或者未初 始化的指针被使用,导致程序行为不 可预测。
数组越界和段错误
wenku.baidu.com
数组越界
访问数组时超出其界限,可能导致读取或写入其他内存区域 ,造成数据损坏或程序崩溃。
区别
C是C语言的超集,增加了面向对象编程特性, 支持类、继承、多态等概念。同时,C还提供了 更多的数据结构和算法库。
c++11_输入输出流精品PPT课件
istream_type& ignore(streamsize n=1, int_type delim=traits::eof()); 提取并舍弃(即不存储)从当前输入位置开始的若干字符,因而只起到 后移输入位置的作用。
int_type peek(); 返回当前位置上的字符,但输入位置不动,因此下一次输入字符时,得 到还是同一字符。若已到流尾而无字符可输入,返回EOF(即-1)。
15
无格式的输入/输出
C++语言程序设计
清华大学 郑莉
无格式的输入/输出概述
在下面有关函数的说明中用到一些类型 定义,包括:
streamsize:表示流大小的类型,一般就是int或long; int_type:整数类类型,一般就是int或long; istream_type:输入流类型,一般就是istream; ostream_type:输出流类型,一般就是ostream; char_type:字符类类型,一般就是char; off_type:偏差(相对位置)类型,一般就是long; pos_type:位置类型,一般就是long。
basic_istream
basic_ostream
basic_ifstream
basic_iostream
basic_ofstream
basic_fstream
6
C++输入/输出流的概念
int_type peek(); 返回当前位置上的字符,但输入位置不动,因此下一次输入字符时,得 到还是同一字符。若已到流尾而无字符可输入,返回EOF(即-1)。
15
无格式的输入/输出
C++语言程序设计
清华大学 郑莉
无格式的输入/输出概述
在下面有关函数的说明中用到一些类型 定义,包括:
streamsize:表示流大小的类型,一般就是int或long; int_type:整数类类型,一般就是int或long; istream_type:输入流类型,一般就是istream; ostream_type:输出流类型,一般就是ostream; char_type:字符类类型,一般就是char; off_type:偏差(相对位置)类型,一般就是long; pos_type:位置类型,一般就是long。
basic_istream
basic_ostream
basic_ifstream
basic_iostream
basic_ofstream
basic_fstream
6
C++输入/输出流的概念
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
4
强调以下三点:
(1) 调用getchar()函数输入字符时,必须用另一个 变量(字符变量或整型变量)接收输入的字符。例如:
ch = getchar();
(2) 调用getchar()函数输入字符时,仅当敲入回车 键后,函数才被激活。
(3) 调用该函数时,输入的每一个字符,包括空白符 (即空格、制表符和回车符),都被送存到键盘缓冲区。
putchar(’\101’); /* 输出字符A,它以转义字符表示,八进制 */
}
.
3
3.2.2 带缓冲区的字符输入函数getchar()
getchar()函数的功能是从标准输入文件(通常是键盘,亦指 磁盘文件)读取一字节代码(即一个字符),并回显。所谓回显, 是指输入一个字符的同时又在屏幕上显示出该字符。这是标准C提 供的字符输入函数,因此也是最常用的字符输入(尤其是键盘输入) 函数。
这是某些编译器,譬如Turbo C新增加的两个字符输 入函数,这两个函数都是从键盘上读入一个字符。两者的 区别是: getch()函数将读入的字符不回显在屏幕上, 而 getche()函数却将读入的字符回显到显示屏幕上。
.
7
/* 本程序调用getchar()函数输入一个字符 */
#include<stdio.h> main() {
#include<stdio.h>
main(){
char c=’A’;
/* 定义字符变量并初始化 */
putchar(c);
/* 输出变量C的值即字符A */
putchar(’A’); /* 输出字符A */
putchar(’\x41’); /* 输出字符A ,它以转义字符表示Hale Waihona Puke Baidu十六进制
*/
putchar(0x41); /* 直接用ASCII码值输出字符A */
键盘缓冲区(实际上应该称作输入流即stdin 流)。所谓键盘 缓冲区,是指在内存开辟的一片临时单元,用来暂时存放从键盘输 入的字符。getchar()函数是带键盘缓冲区的输入函数,是指当从 键盘输入字符时,这些字符先存放在键盘缓冲区,如果不敲回车键, getchar()函数并没有真正被执行(即所谓被激活);仅当回车键 也被送入键盘缓冲区后,getchar()函数才从键盘缓冲区中读取一 个字符。
用于按指定格式向标准输出设备(屏幕)输出。有两种形式:
printf("字符串");
例如,下面的语句: printf("How are you!\n");
是在屏幕上输出这样一行: How are you!
这种形式的输出并没有指定输出格式。
.
9
另一种形式是:
printf("<格式控制串>", <参数表>)
第3章 标准输入与输出
3.1 概述 3.2 字符输入输出函数 3.3 格式化输入和输出函数 3.4 输入和输出函数的讨论
.
1
3.1 概述
通过终端输入(如键盘、鼠标等),也称为标准输入 (standard input),直接向终端输出(如显示器、打印机等), 也称为标准输出(standard output)。
char c, ch; c=getch(); /* 从键盘上读一字符不回显送给变量c */ putchar(c); /* 输出该字符*/ ch=getche();/* 从键盘读一字符送给变量ch并回显 */ putchar(ch);/* 输出该字符*/
}
.
8
3.3 格式化输入和输出函数 3.3.1 printf()函数
.
5
/* 本程序调用getchar()函数输入一个字符 */
#include<stdio.h>
main()
{
char c;
/* 定义字符变量 */
c = getchar(); /* 接收键盘输入的一个字符 */
putchar(c); /* 输出该字符 */
putchar(’\n’);
}
.
6
3.2.3 不带缓冲区的字符输入函数getch()和getche()
“格式控制串”是由0个或多个格式转换说明组成的一个字符 串序列。格式转换说明的一般形式为:
%[flag][[ width][.prec]][[h][l][L]]输出格式符
格式修饰符(见表3-2)
见表3-1
printf(“%d”, a);
printf("%d%f", a,x); printf("a=%d, b=%d, a+b=%d\n", a,b,a+b);
printf(“a=%-d, x=%+8.2f, x+y=%Lf\n", a,x,x+y);
左对齐
正数也要加正号
输出为long double型
输出共占8位,其中小数占两位
.
10
3.3.2 scanf()函数
scanf()函数的一般形式为: int scanf("<格式控制串>",<地址列表>)
“格式控制串”是由0个或多个格式转换说明组成的一个字符 串序列。格式转换说明的一般形式为:
C语言本身没有提供输入输出语句,C语言中的所有I/O操作都 是通过函数调用来实现,而这些并非C语言一部分的输入输出函数 均以目标级程序的方式提供,并存放在一个C标准函数库中。
每一个标准库都有一个相应的头文件,该头文件包含了该库中 所有函数的函数原型及其相关信息。在调用这些库函数时,要用预 处理命令“#include”将有关的“头文件”包括到用户源程序中。 标准输入输出库函数对应的头文件是“stdio.h”。stdio是 standard input & output的缩写。因此,读者在调用标准输入输 出库函数时,你的源程序开头应该有如下编译预处理命令:
%[*][width][h/l/L]输入格式符
格式修饰符(见表3-4) 见表3-3
格式转换说明的作用是引导对下一输入项进行转换。
“地址列表”中给出一个或多个输入项,输入项之间用逗号分 隔。从概念上讲,输入项的表示形式是指针,指向存储输入数据的 变量。因此,输入项必须指明变量的地址。C语言提供了一个取变 量地址的运算符“&”,只要将它作用在变量上,就能得到该变量 的地址。例如,&a,&b分别表示变量a和变量b 的地址。
#include<stdio.h>
或
#include"stdio.h"
.
2
3.2 字符输入输出函数
3.2.1 字符输出函数putchar()
putchar()函数是向屏幕一个字符, 其调用格式为:
putchar(ch);
其中ch为一个字符变量、字符常量或整型常量。
/* 本程序测试多种类型数据作putchar()函数参数的输出情况 */