资源描述
C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中C 语言的输入语言的输入/输出输出 C+语言的输入语言的输入/输出输出 预定义输入流对象预定义输入流对象 cin 预定义输出流对象预定义输出流对象 cout 预定义格式控制符预定义格式控制符 程序举例程序举例 教教 学学 内内 容容 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 所谓输入输出是以计算机主机为主体而言的。所谓输入输出是以计算机主机为主体而言的。从计算机向外部输出设备(如显示屏、打印机、磁盘从计算机向外部输出设备(如显示屏、打印机、磁盘 等)输出数据称为等)输出数据称为“输出输出”;从输入设备(如键盘、磁盘、光盘、扫描仪等)向计从输入设备(如键盘、磁盘、光盘、扫描仪等)向计 算机输入数据称为算机输入数据称为“输入输入”。C 语言本身不提供输入输出语句:语言本身不提供输入输出语句:输入和输出操作是由函输入和输出操作是由函 数来实现的。在数来实现的。在C 标准函数库中提供一些输入输出函数,标准函数库中提供一些输入输出函数,其中有一批其中有一批“标准输入输出函数标准输入输出函数”,它们以标准的输入输出,它们以标准的输入输出 设备为输入输出对象。设备为输入输出对象。例:例:putchar、getchar、puts、gets、printf、scanf 等。等。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 使用库函数,要用使用库函数,要用“#include”包含包含有关有关“头文件头文件”。例:例:使用标准输入输出库函数(使用标准输入输出库函数(printf、scanf 例外)时,文例外)时,文 件开头要有以下预编译命令:件开头要有以下预编译命令:#include 或或#include printf(格式输出函数)(格式输出函数)作用:作用:向显示器输出若干个任意类型的数据。向显示器输出若干个任意类型的数据。格式:格式:printf(格式控制,输出表列格式控制,输出表列)n格式控制:格式控制:用双引号括起来的字符串。用双引号括起来的字符串。l格式说明:格式说明:由由“%”和格式字符组成。和格式字符组成。l普通字符:普通字符:原样输出。原样输出。例:例:printf(%d,%cn,i,c)n输出表列:输出表列:需要输出的数据列表,可以是表达式。需要输出的数据列表,可以是表达式。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 与与 printf 有关的格式字符有关的格式字符 d 格式符:格式符:输出十进制整数。输出十进制整数。n%d:按整型数据的实际长度输出。:按整型数据的实际长度输出。n%md:m 为输出宽度。位数为输出宽度。位数m,按实际位数输出。按实际位数输出。n%ld:输出长整型数据。:输出长整型数据。o 格式符:格式符:以八进制数形式输出整数。以八进制数形式输出整数。有有%o,%mo,%lo等形式,等形式,m,l 的作用同的作用同 d 格式符。格式符。x 格式符:格式符:以十六进制数形式输出整数。以十六进制数形式输出整数。有有%x,%mx,%lx等形式,等形式,m,l 的作用同的作用同 d 格式符。格式符。u 格式符:格式符:以十进制形式输出以十进制形式输出unsigned型数据。型数据。c 格式符:格式符:输出一个字符。可用输出一个字符。可用%mc。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 与与 printf 有关的格式字符有关的格式字符 s 格格式符:式符:输出一个字符串输出一个字符串。n%s:按实际长度输出。:按实际长度输出。n%ms:m 为输出宽度。长度为输出宽度。长度m,按实际长度输出。按实际长度输出。n%-ms:长度:长度m 右补空格,左对齐。右补空格,左对齐。n%:输出左端:输出左端 n 个字符,占个字符,占 m 列。若列。若 nm,则,则 左补空格,右对齐。左补空格,右对齐。n%-:若:若 nm,则右补空格,左对齐。,则右补空格,左对齐。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 与与 printf 有关的格式字符有关的格式字符 f 格格式符:式符:以小数形式输出实数。以小数形式输出实数。n%f:系统指定宽度,整数部分全输出,小数:系统指定宽度,整数部分全输出,小数 6 位。位。n%:占:占 m 列,其中列,其中 n 位小数。左补空格右对齐。位小数。左补空格右对齐。n%-:右补空格左对齐。:右补空格左对齐。e 格式符:格式符:以指数形式输出实数以指数形式输出实数。有有%e,%,%-等形式。等形式。g 格式符:格式符:输出实数。根据数值的大小,自动选输出实数。根据数值的大小,自动选 f 格式或格式或 e 格式(选择宽度较小的一种),且不输出无格式(选择宽度较小的一种),且不输出无 意义的零。意义的零。注意:注意:注意:注意:除了除了 x,e,g 外,其他格式字符必须用小写字母。外,其他格式字符必须用小写字母。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 scanf(格式输入函数)(格式输入函数)作用:作用:从键盘输入若干个任意类型的数据。从键盘输入若干个任意类型的数据。格式:格式:scanf(格式控制,地址表列格式控制,地址表列)n格式控制:格式控制:含义与含义与 printf 相同。相同。n地址表列:地址表列:由若干个地址组成的表列,可以是变量的由若干个地址组成的表列,可以是变量的 地址,或字符串的首地址。地址,或字符串的首地址。例:例:int a,b,c;scanf(%d%d%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 scanf(格式输入函数)(格式输入函数)注意:注意:n两数间用两数间用 n 个空格,回车或个空格,回车或 tab 间隔,不能用逗号。间隔,不能用逗号。n若有其他字符,则应输入与这些字符相同的字符。若有其他字符,则应输入与这些字符相同的字符。例:例:scanf(%d,%d,&a,&b);应输入:应输入:3,4 n用用%c时,空格和时,空格和“转义字符转义字符”都作为有效字符输入。都作为有效字符输入。例:例:scanf(%c%c%c,&c1,&c2,&c3);若输入:若输入:a b c,则则a 送送 c1,送送 c2,b 送送c3。n输入数据时,遇以下情况该数据认为结束:输入数据时,遇以下情况该数据认为结束:l遇空格,或按遇空格,或按“回车回车”或或 tab 键;键;l按指定的宽度结束,如按指定的宽度结束,如%3d,只取,只取 3 列;列;l遇非法输入。遇非法输入。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.0 C 语言的输入语言的输入/输出输出 putchar()(字符输出函数字符输出函数)作用:作用:向终端输出一个字符。向终端输出一个字符。例:例:putchar(c);/输出字符变量输出字符变量 c 的值。的值。注意:注意:c 可以是字符型变量或整型变量。可以是字符型变量或整型变量。getchar()(字符输入函数字符输入函数)作用:作用:从终端输入一个字符。从终端输入一个字符。注意:注意:getchar()没有参数。没有参数。getchar()得到的字符可以赋给一个字符变量或整型变得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量。量,也可以不赋给任何变量。getchar()可作为表达式的一部分。可作为表达式的一部分。getchar()可单独构成一个语句。可单独构成一个语句。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.1 C+语言的输入语言的输入/输出输出 C+语言本身不提供输入输出语句。语言本身不提供输入输出语句。C+的的 I/O 操作是以操作是以流流流流(stream)的形式实现的。的形式实现的。数据从数据从 1 个对象向另个对象向另 1 个对象的转移被抽象为个对象的转移被抽象为流流流流。例例:键盘数据是从输入设备向内存设备的转移键盘数据是从输入设备向内存设备的转移输入流输入流输入流输入流。显示数据是从内存设备向输出设备的转移显示数据是从内存设备向输出设备的转移输出流输出流输出流输出流。C+的输入操作通过的输入操作通过预定义输入流对象预定义输入流对象 cin 实现。实现。C+的输出操作通过的输出操作通过预定义输出流对象预定义输出流对象 cout 实现。实现。使用使用 cin 和和 cout 必须必须在程序开头增加如下代码:在程序开头增加如下代码:#include using namespace std;C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.2 预定义输入流对象预定义输入流对象 cin 作用:作用:直接输入基本数据类型的数据,包括整数、实数、直接输入基本数据类型的数据,包括整数、实数、字符和字符串。字符和字符串。格式:格式:cin变量名变量名1变量名变量名2 变量名变量名n:提取运算符,表示将暂停程序的执行,等待用户从键:提取运算符,表示将暂停程序的执行,等待用户从键 盘上输入相应的数据。即:从输入流中提取数据。盘上输入相应的数据。即:从输入流中提取数据。注意:注意:一个一个“”后只能跟一个变量名。但后只能跟一个变量名。但“变量名变量名”可以可以 重复多次。重复多次。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中作用:向显示器输出若干个任意类型的数据。使用库函数,要用“#include”包含有关“头文件”。注意:以上输出形式一旦设置,则在修改前一直有效。0 C 语言的输入/输出scanf(格式输入函数)0 C 语言的输入/输出0 C 语言的输入/输出coutfixedsetprecision(6)x”后只能跟一个变量名。与 printf 有关的格式字符C+的输入操作通过预定义输入流对象 cin 实现。算机输入数据称为“输入”。1、用 scanf、cin、printf、cout 分别建立学生成绩管理系统scanf(%d%d%d,&a,&b,&c);cout表达式1表达式2i;/执行到此,若输入执行到此,若输入250,则将,则将250送给送给 i。/执行到此,可同时输入执行到此,可同时输入。cinx;/执行到此,若输入执行到此,若输入,则将,则将送给送给 x。回车的作用:回车的作用:cin 开始开始从输入行中提取数据,依次赋给各变量;从输入行中提取数据,依次赋给各变量;分隔输入数据。回车后若仍有变量无数据,则继续等待分隔输入数据。回车后若仍有变量无数据,则继续等待 输入新的一行数据;输入新的一行数据;若输入的一行仅一个回车,则作为空格处理。若输入的一行仅一个回车,则作为空格处理。要求:要求:输入数据的个数、类型和顺序,输入数据的个数、类型和顺序,必须与必须与 cin 中列举的中列举的 变量一一对应,否则出错。变量一一对应,否则出错。3.2.1 输入十进制整数和实数输入十进制整数和实数 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.2 预定义输入流对象预定义输入流对象 cin 在缺省时,自动跳过输入的空白符。在缺省时,自动跳过输入的空白符。例:例:char c1,c2;cinc1c2;输入输入 a b 或或 ab 效果相同效果相同,都是,都是 a 送送 c1,b 送送 c2。不跳过输入的空白符办法不跳过输入的空白符办法 用格式用格式控制符控制符 noskipws 例:例:char c1,c2;cinnoskipwsc1c2;若输入若输入 a b,则,则 a 送送 c1,送送 c2。注:注:用用 kipws 恢复恢复自动跳过输入空白符的方式。自动跳过输入空白符的方式。用函数用函数()例:例:char c1,c2;cin.get(c1);cin.get(c2);若输入若输入 a b,则,则 a 送送 c1,送送 c2。3.2.2 输入字符输入字符 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.2 预定义输入流对象预定义输入流对象 cin 例:例:int i,j,k,m,n;cinhexi;/指明输入为十六进制数指明输入为十六进制数 cinj;/输入仍为十六进制数输入仍为十六进制数 cinoctk;/指明输入为八进制数指明输入为八进制数 cinm;/输入仍为八进制数输入仍为八进制数 cindecn;/指明输入为十进制数指明输入为十进制数 注意注意 仅整型变量可用;仅整型变量可用;指定数制直到指明另一数制为止一直有效;指定数制直到指明另一数制为止一直有效;输入八、十六进制数时,用不用输入八、十六进制数时,用不用 0、0 x 开始均可。开始均可。3.2.3 输入十六进制数或八进制数输入十六进制数或八进制数 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.3 预定义输出流对象预定义输出流对象 cout 作用:作用:直接输出基本数据类型的数据,包括整数、实数、直接输出基本数据类型的数据,包括整数、实数、字符和字符串。字符和字符串。格式:格式:cout表达式表达式1表达式表达式2 表达式表达式n:插入运算符,将紧跟其后的表达式的值输出到显示器:插入运算符,将紧跟其后的表达式的值输出到显示器 当前光标位置。即:向输出流插入数据。当前光标位置。即:向输出流插入数据。注意:注意:一个一个“”后只能跟一个表达式。但后只能跟一个表达式。但“表达式表达式”可以可以 重复多次。重复多次。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.3 预定义输出流对象预定义输出流对象 cout 作用:作用:将双引号中的字符串常量原样输出。将双引号中的字符串常量原样输出。例:例:cout输入变量的值:输入变量的值:;则在显示器的当前光标位置显示:则在显示器的当前光标位置显示:输入变量的值:输入变量的值:。例:例:char c=a,b=b;coutc=c,b=b变量名”可以coutshowpoint yendl;/输出小数点即:向输出流插入数据。3.3 预定义输出流对象预定义输出流对象 cout 作用:作用:按数据的实际宽度,左对齐输出按数据的实际宽度,左对齐输出。例:例:int i=12,j=100;coutijendl;显示:显示:12100。问题:问题:分不清结果。分不清结果。解决办法解决办法 n加分隔符:加分隔符:couti,jendl;输出:输出:12,100。n使用格式控制符:使用格式控制符:left:左对齐;:左对齐;right:右对齐;:右对齐;setw(n):设置宽度。:设置宽度。n 与实际宽度用大者。与实际宽度用大者。left与与right由由iostream库提供。更改前一直有效。库提供。更改前一直有效。setw(n)由由iomanip库提供。对紧跟其后的一个有效。库提供。对紧跟其后的一个有效。例:例:coutleftsetw(6)isetw(6)j”后只能跟一个变量名。要求:输入数据的个数、类型和顺序,必须与 cin 中列举的C 语言的输入/输出例:coutleftsetw(6)isetw(6)jendl;与 printf 有关的格式字符作用:向显示器输出若干个任意类型的数据。即:从输入流中提取数据。3 预定义输出流对象 cout1endl;C+的输入操作通过预定义输入流对象 cin 实现。getchar()没有参数。coutshowpos xendl;/输出正号scanf(格式输入函数)3.3 预定义输出流对象预定义输出流对象 cout 作用:作用:按数据的实际宽度,左对齐输出按数据的实际宽度,左对齐输出。例:例:int i=10,j=12;coutocti,jendl;显示:显示:12,14。couthexi,jendl;显示:显示:a,c。oct 和和 hex 一旦指定,则更改前一直有效。一旦指定,则更改前一直有效。格式控制符格式控制符 left、right、setw(n)的使用方法与十进制相同。的使用方法与十进制相同。3.3.3 输出八进制数和十六进制数输出八进制数和十六进制数 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.3 预定义输出流对象预定义输出流对象 cout 作用:作用:按左对齐、定点数、按左对齐、定点数、6 个有效位输出个有效位输出。输出格式的重新设置输出格式的重新设置 fixed:以定点数形式输出。以定点数形式输出。scientific:以指数形式输出。:以指数形式输出。setprecision(n)(iomanip库提供):设置浮点数的精度。库提供):设置浮点数的精度。若已用若已用 fixed 或或 scientific 设置了浮点数的输出形式,则设置了浮点数的输出形式,则 n 表示浮点数的小数位数;否则,表示浮点数的小数位数;否则,n 表示浮点数的有效表示浮点数的有效 位数。位数。注意:注意:注意:注意:以上输出形式一旦设置,则在修改前一直有效。以上输出形式一旦设置,则在修改前一直有效。3.3.4 输出实数输出实数 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.3 预定义输出流对象预定义输出流对象 cout 作用:作用:按左对齐、定点数、按左对齐、定点数、6 个有效位输出个有效位输出。输出格式的重新设置输出格式的重新设置 例:例:double x=sqrt(3.0);coutxendl;/以默认格式输出以默认格式输出 coutsetprecision(4)xendl;/以以 4 位有效位输出位有效位输出 coutscientificsetprecision(3)xendl;/以指数形式、以指数形式、3 位小数输出位小数输出1.732e+000 coutfixedsetprecision(6)xendl;/以定点形式、以定点形式、6 位小数输出位小数输出 3.3.4 输出实数输出实数 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.3 预定义输出流对象预定义输出流对象 cout 显示小数点:显示小数点:缺省情况下,整数浮点数不输出小数点。可用缺省情况下,整数浮点数不输出小数点。可用 格式控制符格式控制符showpoint(iostream库提供)强制库提供)强制 输出,或用输出,或用 setprecision(n)设置小数位数。设置小数位数。显示正号:显示正号:缺省情况不输出正号。可用缺省情况不输出正号。可用 showpos(iostream库库 提供)强制输出。提供)强制输出。noshowpos 则清除。则清除。例:例:double x=3.0,y=-5;coutyendl;/整数不输出小数点整数不输出小数点 -5 coutshowpoint yendl;/输出小数点输出小数点 coutshowpos xendl;/输出正号输出正号 coutnoshowpos xendl;/清除正号清除正号 3.00000 3.3.4 输出实数输出实数 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中3.3 预定义输出流对象预定义输出流对象 cout 设置填充字符:设置填充字符:当用当用 setw(n)设置的输出宽度大于数据的实设置的输出宽度大于数据的实 际宽度时,系统自动在空白位置填充空格。际宽度时,系统自动在空白位置填充空格。也可用也可用setfill(c)(iomanip 库提供库提供)设置填设置填 充其它字符。充其它字符。例:例:coutsetfill(*)leftsetw(5)3.1endl;/设置填充字符为设置填充字符为“*”3.1*coutsetfill(*)setw(6)right-3.1endl;coutsetfill()leftsetw(5)3.1endl;/恢复默认填充字符恢复默认填充字符 coutsetfill()setw(6)right-3.1endl;3.3.4 输出实数输出实数 C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中作作 业业 1、用、用 scanf、cin、printf、cout 分别建立学生成绩管理系统分别建立学生成绩管理系统 封面、主菜单及各子菜单(全部放入封面、主菜单及各子菜单(全部放入 main 函数中)。函数中)。2、要求:、要求:按封面、主菜单、编辑子菜单、查询子菜单、计算子按封面、主菜单、编辑子菜单、查询子菜单、计算子 菜单、排序子菜单的顺序显示并各占一屏。菜单、排序子菜单的顺序显示并各占一屏。显示封面后停顿,输入任一键后继续。显示封面后停顿,输入任一键后继续。显示菜单后等待选择,并输出所选数字。显示菜单后等待选择,并输出所选数字。显示前清屏。显示前清屏。C/C+语言程序设计语言程序设计 第三章第三章 数据的输入和输出数据的输入和输出制作:制作:山东经济学院计算机科学与技术学院 徐振中 主菜单主菜单 1.打开文件打开文件 2.保存文件保存文件 3.编辑数据编辑数据 4.查询数据查询数据 5.计算数据计算数据 6.退出系统退出系统 编辑子菜单编辑子菜单 1.增加记录增加记录 2.修改记录修改记录 3.删除记录删除记录 4.返回主菜单返回主菜单 查询子菜单查询子菜单 1.查询选定记录查询选定记录 2.显示全部记录显示全部记录 3.显示排序记录显示排序记录 4.显示不及格记录显示不及格记录 5.返回主菜单返回主菜单 计算子菜单计算子菜单 1.计算总成绩计算总成绩 2.计算平均成绩计算平均成绩 3.计算最高分计算最高分 4.计算最低分计算最低分 5.返回主菜单返回主菜单 排序子菜单排序子菜单 1.按升序排序按升序排序 2.按降序排序按降序排序 3.返回主菜单返回主菜单
展开阅读全文