C++语言程序设计课件张华第03讲 数据输入输出

上传人:小**** 文档编号:240743328 上传时间:2024-05-04 格式:PPT 页数:29 大小:161KB
返回 下载 相关 举报
C++语言程序设计课件张华第03讲 数据输入输出_第1页
第1页 / 共29页
C++语言程序设计课件张华第03讲 数据输入输出_第2页
第2页 / 共29页
C++语言程序设计课件张华第03讲 数据输入输出_第3页
第3页 / 共29页
点击查看更多>>
资源描述
张张 华华第三讲第三讲 数据输入输出数据输入输出2008年02月 张华 武汉大学第三讲第三讲 数据输入输出数据输入输出数据的输入与输出概念数据的输入与输出概念cout输出流对象输出流对象cin输入流对象输入流对象C+C+语言程序设计语言程序设计22008年02月 张华 武汉大学输入输出输入输出输入输出是以计算机主机为主体而言的。输入输出是以计算机主机为主体而言的。输出输出(Output):从主机向外部输出设备输出数据。:从主机向外部输出设备输出数据。输入输入(Input):从外部通过输入设备向主机输入数据。:从外部通过输入设备向主机输入数据。数据输入输出数据输入输出主主机机键盘键盘磁盘磁盘光盘光盘扫描仪扫描仪显示器显示器打印机打印机磁盘磁盘输入输入输出输出32008年02月 张华 武汉大学输入输出流输入输出流流流(stream)按直线排列的按直线排列的0个或多个字符个或多个字符所有的输入所有的输入/输出都是用流来进行的。输出都是用流来进行的。数据输入输出数据输入输出S!ci源源目的目的42008年02月 张华 武汉大学标准输入输出流标准输入输出流开始执行程序时,开始执行程序时,3个流自动连接到程序上个流自动连接到程序上标准输入流标准输入流(standard input)对应的源端设备:对应的源端设备:键盘键盘标准输出流标准输出流(standard output)对应的目的端设备:对应的目的端设备:显示器显示器标准错误流标准错误流(standard error)对应的目的端设备:对应的目的端设备:显示器显示器操作系统允许这些流重定向到其它设备操作系统允许这些流重定向到其它设备数据输入输出数据输入输出myprog out.txt输出重定向符输出重定向符myprog data.txt输入重定向符输入重定向符52008年02月 张华 武汉大学C+语言的数据输入与输出语言的数据输入与输出在在C+语言中,数据的输入和输出是分别使用系统所语言中,数据的输入和输出是分别使用系统所提供的输入流对象提供的输入流对象cin和输出流对象和输出流对象cout来完成的。来完成的。cout和和cin是是C+标准库中定义的两个输入输出流对象。标准库中定义的两个输入输出流对象。在使用过程中,要在程序的开头包含相应的头文件:在使用过程中,要在程序的开头包含相应的头文件:#include 或或#include 数据输入输出数据输入输出62008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout输出流对象输出流对象cout输出数据的语句格式为:输出数据的语句格式为:cout数据数据1数据数据2数据数据n;说明:说明:cout输出流对应的目的端是系统预定义的一个标准输出设备(一般输出流对应的目的端是系统预定义的一个标准输出设备(一般是显示器)。是显示器)。“”是输出操作符,用于向是输出操作符,用于向cout输出流中插入数据。输出流中插入数据。cout的作用是向标准输出设备上输出数据,被输出的数据可以是常的作用是向标准输出设备上输出数据,被输出的数据可以是常量、已有值的变量或是一个表达式。量、已有值的变量或是一个表达式。cout会自动把数据转换成正确的字符串形式,然后输出。会自动把数据转换成正确的字符串形式,然后输出。数据输入输出数据输入输出72008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:如:如:#include#include void main()float a=3,b=4;coutThe result is:;coutsqrt(a*a+b*b);该程序的输出结果为:该程序的输出结果为:The result is:5不输出无意义的零不输出无意义的零数据输入输出数据输入输出82008年02月 张华 武汉大学数据输出数据输出输出流对象输出流对象cout说明:说明:可以在可以在cout输出流中插入输出流中插入C+中的转义字符。中的转义字符。如:如:cout“Output the value of a:n;couta;表示输出完字符串表示输出完字符串Output the value of a:后,在下一行输出后,在下一行输出变量变量a的值。的值。数据输入输出数据输入输出92008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:可以将多个被输出的数据写在一个可以将多个被输出的数据写在一个cout中,各输出项间用中,各输出项间用“”操操作符隔开即可。作符隔开即可。如:如:couta:a b:b result:sqrt(a*a+b*b);但要注意但要注意cout首先按从右向左的顺序计算出各输出项的值,然后再首先按从右向左的顺序计算出各输出项的值,然后再输出各项的值。输出各项的值。如:如:设变量设变量i的值为的值为10,则则couti,i+,i+;的输出结果为:的输出结果为:12,11,10数据输入输出数据输入输出102008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:一个一个cout语句也可拆成若干行书写,但注意语句结束符语句也可拆成若干行书写,但注意语句结束符“;”只能只能写在最后一行上。写在最后一行上。如:对于上面的语句也可写成如下形式:如:对于上面的语句也可写成如下形式:cout value of a:/注意行末无分号注意行末无分号 a value of b:b The result is:sqrt(a*a+b*b);/在此处书写分号在此处书写分号数据输入输出数据输入输出112008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:在在cout中,实现输出数据换行功能的方法:既可使用转义字符中,实现输出数据换行功能的方法:既可使用转义字符“n”,也可使用表示行结束的流控制符,也可使用表示行结束的流控制符endl。如:如:coutThis is first Line.nThis is second line.;上面语句可等价地写为:上面语句可等价地写为:coutThis is first Line.endlThis is second line.;数据输入输出数据输入输出122008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:在在cout中还可以使用流控制符控制数据的输出格式,但使用这些流中还可以使用流控制符控制数据的输出格式,但使用这些流控制符时,要在程序的中包含头文件控制符时,要在程序的中包含头文件iomanip.h。常用的流控制符及其功能如下表所示。常用的流控制符及其功能如下表所示。控制符控制符功能功能dec十进制数输出十进制数输出hex十六进制数输出十六进制数输出oct八进制数输出八进制数输出setfill(c)在给定的输出域宽度内填充字符在给定的输出域宽度内填充字符csetprecision(n)设显示小数精度为设显示小数精度为n位(有效数字个数)位(有效数字个数)setw(n)设域宽为设域宽为n个字符个字符setiosflags(ios:fixed)固定的浮点显示固定的浮点显示数据输入输出数据输入输出132008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:常用的流控制符及其功能如下表所示(续)。常用的流控制符及其功能如下表所示(续)。setiosflags(ios:scientific)指数显示指数显示setiosflags(ios:left)左对齐左对齐setiosflags(ios:right)右对齐右对齐setiosflags(ios:skipws)忽略前导空白忽略前导空白setiosflags(ios:uppercase)十六进制数大写输出十六进制数大写输出setiosflags(ios:lowercase)十六进制数小写输出十六进制数小写输出setiosflags(ios:showbase)按按十十六六八八进进制制输输出出数数据据时时,前前面面显显示示前前导导符符0 x0;数据输入输出数据输入输出142008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:设置域宽设置域宽所谓域宽就是被输出数据所占的输出宽度(单位是字符数)。设置域所谓域宽就是被输出数据所占的输出宽度(单位是字符数)。设置域宽可以使用流控制符宽可以使用流控制符setw(n)和和cout的方法的方法cout.width(n)其中其中n为正整数,表示域宽。但是,为正整数,表示域宽。但是,cout.width(n)和和setw(n)二者都二者都只只对下一个被输出的数据有作用对下一个被输出的数据有作用,若一个输出语句内有多个被输出的数,若一个输出语句内有多个被输出的数据,而要保持一定格式域宽时,需要在每一输出数据前加上据,而要保持一定格式域宽时,需要在每一输出数据前加上cout.width(n)或或setw(n)。此外,当参数此外,当参数n的值比实际被输出数据的宽度大时,则在给定的域宽的值比实际被输出数据的宽度大时,则在给定的域宽内,数据靠右输出,不足部分自动填充空格符;若被输出数据的实际内,数据靠右输出,不足部分自动填充空格符;若被输出数据的实际宽度比宽度比n值大时,则数据所占的实际位数输出数据,设置域宽的参数值大时,则数据所占的实际位数输出数据,设置域宽的参数n不再起作用。不再起作用。数据输入输出数据输入输出152008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:举例:举例:cout流控制符流控制符setw的使用。的使用。#include#include void main()int a=21,b=999;coutsetw(3)asetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)a+bsetw(4)a+bsetw(5)a+bendl;其输出结果是:其输出结果是:21 21 21/程序中第一个程序中第一个cout的输出结果的输出结果999 999 999/程序中第二个程序中第二个cout的输出结果的输出结果10201020 1020/程序中第三个程序中第三个cout的输出结果的输出结果数据输入输出数据输入输出162008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:设置域内填充字符设置域内填充字符在默认情况下,当被输出的数据未占满域宽时,会自动在域内靠左边在默认情况下,当被输出的数据未占满域宽时,会自动在域内靠左边填充相应个数的空格符。填充相应个数的空格符。但我们也可以设置在域内填充其他的字符,方法是利用但我们也可以设置在域内填充其他的字符,方法是利用cout的的fill方法方法cout.fill(c)或或setfill(c)。cout.fill(c)上和上和setfill(c)可以可以对所有被输出的数据起作用对所有被输出的数据起作用。数据输入输出数据输入输出172008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:举例:在上例的基础上增加域内填充字符的功能。举例:在上例的基础上增加域内填充字符的功能。#include“iostream.h”#include“iomanip.h”void main()int a=21,b=999;cout.fill(#);/设置域内填充字符为设置域内填充字符为#字符字符 coutsetw(3)asetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;cout.fill(%);/将域内填充字符改为将域内填充字符改为%字符字符 coutsetw(3)a+bsetw(4)a+bsetw(5)a+bendl;其输出结果是:其输出结果是:#21#21#21 /程序中第一个程序中第一个cout的输出结果,未占满域宽的部分填充的输出结果,未占满域宽的部分填充#字符。字符。999#999#999 /程序中第二个程序中第二个cout的输出结果的输出结果10201020%1020/程序中第三个程序中第三个cout的输出结果,未占满域宽的部分填充的输出结果,未占满域宽的部分填充%字符。字符。数据输入输出数据输入输出182008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:当采用流控制符设置填充字符时,上面程序代码也可等价地改为:当采用流控制符设置填充字符时,上面程序代码也可等价地改为:#include#include void main()inta=21,b=999;coutsetw(3)setfill(#)asetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)a+bendl;数据输入输出数据输入输出192008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:设置输出数据的进位计数制设置输出数据的进位计数制在默认情况下,被输出的数据按十进制格式输出。在默认情况下,被输出的数据按十进制格式输出。但可以使用流控制符但可以使用流控制符hex和和oct控制数据的输出格式为十六进制和八进控制数据的输出格式为十六进制和八进制,一旦设置成某种进位计数制后,数据的输出就以该种数制为主,制,一旦设置成某种进位计数制后,数据的输出就以该种数制为主,可利用流控制符可利用流控制符dec将数制重新设成十进制。将数制重新设成十进制。举例:在前例的基础上增加域内填充字符的功能。举例:在前例的基础上增加域内填充字符的功能。#include#include void main()int a=21,b=999;/设置以十六制格式输出数据设置以十六制格式输出数据数据输入输出数据输入输出202008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:举例(续)举例(续)coutsetw(3)setfill(#)hexasetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)a+bendl;coutsetw(3)setfill(#)octasetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)a+bendl;coutsetw(3)setfill(#)decasetw(4)asetw(5)aendl;coutsetw(3)bsetw(4)bsetw(5)bendl;coutsetw(3)setfill(%)a+bsetw(4)a+bsetw(5)a+bendl;数据输入输出数据输入输出212008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:程序的输出结果为:程序的输出结果为:#15#15#15 /以十六进制格式输出数据以十六进制格式输出数据3e7#3e7#3e73fc%3fc%3fc#25#25#25 /以八进制格式输出数据以八进制格式输出数据17471747#174717741774%1774#21#21#21 /以十进制格式输出数据以十进制格式输出数据999#999#99910201020%1020数据输入输出数据输入输出222008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:设置浮点数的输出格式设置浮点数的输出格式对于浮点数,既可以用小数格式输出,也可以用指数格式输出。对于浮点数,既可以用小数格式输出,也可以用指数格式输出。这可以分别通过这可以分别通过setiosflags(ios:fixed)和和setiosflags(ios:scientific)来控制。来控制。举例:举例:已知圆的半径已知圆的半径r=6.779,计算并输出圆的周长和面积,要求,计算并输出圆的周长和面积,要求分别用指数和小数两种格式输出。分别用指数和小数两种格式输出。#include#include void main()const double pi=3.14159;double r=6.779,c,s;c=2.0*pi*r;/计算圆的周长计算圆的周长 s=pi*r*r;/计算圆的面积计算圆的面积数据输入输出数据输入输出232008年02月 张华 武汉大学数据的输出数据的输出输出流对象输出流对象cout说明:说明:举例(续)举例(续)/以指数格式输出圆的面积和周长以指数格式输出圆的面积和周长 cout圆的周长圆的周长(指数指数)为:为:setiosflags(ios:scientific)cendl;cout圆的面积圆的面积(指数指数)为:为:sendl;/以小数输出圆的面积和周长以小数输出圆的面积和周长 cout圆的周长圆的周长(小数小数)为:为:setiosflags(ios:fixed)cendl;cout圆的面积圆的面积(小数小数)为:为:s变量名变量名1变量名变量名2变量名变量名n;说明:说明:cin流对应的源端设备是系统预定义的一个标准输入设备(一般是流对应的源端设备是系统预定义的一个标准输入设备(一般是键盘)。键盘)。cin的功能是:当程序在运行过程中执行到的功能是:当程序在运行过程中执行到cin时,程序会暂停执行时,程序会暂停执行并等待用户从键盘输入相应数目的数据,用户输入完数据并敲回车并等待用户从键盘输入相应数目的数据,用户输入完数据并敲回车后,后,cin从输入流中取得相应的数据并传送给其后的变量。从输入流中取得相应的数据并传送给其后的变量。“”操作符后除了变量名外不得有其他数字、字符串或字符,否操作符后除了变量名外不得有其他数字、字符串或字符,否则系统会报错。则系统会报错。数据输入输出数据输入输出252008年02月 张华 武汉大学数据的输入数据的输入输出流对象输出流对象cin说明:说明:如:如:cinx=x;/错误,因含有字符串错误,因含有字符串x=cinxx;/错误,因含有字符错误,因含有字符x=cinx10;/错误,因含有常量错误,因含有常量10cin后面所跟的变量可为任何数据类型。后面所跟的变量可为任何数据类型。若变量为整型,则在程序运行过程中从键盘输入数据时,可分别按若变量为整型,则在程序运行过程中从键盘输入数据时,可分别按十进制、八进制或十六进制输入该整数。但要注意:十进制、八进制或十六进制输入该整数。但要注意:当按十进制格式输入整数时,可直接输入数据本身即可;当按十进制格式输入整数时,可直接输入数据本身即可;若以十六进制输入整数时,数据前要冠以若以十六进制输入整数时,数据前要冠以0 x或或0X;若按八进制格式输入整数时,数据前要冠以数字若按八进制格式输入整数时,数据前要冠以数字0,。,。若若cin后面的变量为浮点类型(单精度或双精度)时,可分别按小数或后面的变量为浮点类型(单精度或双精度)时,可分别按小数或指数的格式表示该浮点数。指数的格式表示该浮点数。若若cin后面的变量为字符类型时,可直接输入字符数据而不能在字符的后面的变量为字符类型时,可直接输入字符数据而不能在字符的两端加单引号。两端加单引号。数据输入输出数据输入输出262008年02月 张华 武汉大学数据的输入数据的输入输出流对象输出流对象cin说明:说明:当程序中用当程序中用cin输入数据时,最好在该语句之前用输入数据时,最好在该语句之前用cout输出一个需输出一个需要输入数据的提示信息,以正确引导和提示用户输入正确的数据。要输入数据的提示信息,以正确引导和提示用户输入正确的数据。如:如:coutx;当一个当一个cin后面同时跟有多个变量时,则用户在输入数据时的个数后面同时跟有多个变量时,则用户在输入数据时的个数应与变量的个数相同,各数据之间用一个或多个空格隔开,输入完应与变量的个数相同,各数据之间用一个或多个空格隔开,输入完后按回车键;或者,每输入一个数据按回车键也可以。后按回车键;或者,每输入一个数据按回车键也可以。数据输入输出数据输入输出272008年02月 张华 武汉大学数据的输入数据的输入输出流对象输出流对象cin说明:说明:如对于以下程序段:如对于以下程序段:int x;double a;char c1;coutxac1;cout整数:整数:x浮点数:浮点数:a字符:字符:c1;运行过程中,屏幕上显示运行过程中,屏幕上显示“输入一个整数、一个浮点数和一个字符输入一个整数、一个浮点数和一个字符:”,用户输入数据的格式可以是:用户输入数据的格式可以是:1003.14a 或者:或者:100 3.14 a或者:或者:100 3.14 a最后程序的输出结果为:最后程序的输出结果为:整数:整数:100浮点数:浮点数:3.14字符:字符:a数据输入输出数据输入输出282008年02月 张华 武汉大学小结小结C+提供了标准输入流对象提供了标准输入流对象cin和输出流对象和输出流对象cout,用来完成数据的输入与输出。用来完成数据的输入与输出。C+标准库提供了许多输出流控制符,用来控制数据标准库提供了许多输出流控制符,用来控制数据的输出格式。的输出格式。数据输入输出数据输入输出29
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!