收藏 分销(赏)

第15章-用户与计算机的交互——输入和输出-C++教学用-教学.ppt

上传人:w****g 文档编号:14656053 上传时间:2026-10-26 格式:PPT 页数:50 大小:2.30MB 下载积分:10 金币
下载 相关
第15章-用户与计算机的交互——输入和输出-C++教学用-教学.ppt_第1页
第1页 / 共50页
第15章-用户与计算机的交互——输入和输出-C++教学用-教学.ppt_第2页
第2页 / 共50页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,*,*,第15章,用户与计算机的交互输入和输出,标准输入输出,流状态,行输入和行输出,printf,函数,随机函数发生器,字符串操作,命令行处理,第15章,用户与计算机的交互输入和输出,标准输入输出,流状态,行输入和行输出,printf,函数,随机函数发生器,字符串操作,命令行处理,第15章,用户与计算机的交互输入和输出,标准输入输出,流状态,行输入和行输出,printf,函数,随机函数发生器,字符串操作,命令行处理,第15章,用户与计算机的交互输入和输出,标准输入输出,流状态,行输入和行输出,printf,函数,随机函数发生器,字符串操作,命令行处理,第15章,用户与计算机的交互输入和输出,标准输入输出,流状态,行输入和行输出,printf,函数,随机函数发生器,字符串操作,命令行处理,第15章,用户与计算机的交互输入和输出,标准输入输出,流状态,行输入和行输出,printf,函数,随机函数发生器,字符串操作,命令行处理,第15章,用户与计算机的交互输入和输出,标准输入输出,流状态,行输入和行输出,printf,函数,随机函数发生器,字符串操作,命令行处理,15.1 标准输入输出,C+的输入输出功能是由iostream库提供的,它是一个利用继承实现的面向对象的层次结构,是由C+标准库的组件提供的。它支持数据类型的输入和输出,也支持文件的输入和输出。,最常用的输入输出运算符是“”和“”,为了使用基本IO流类库提供的操作,我们需要包含相关的头文件。,#include,15.1 标准输入输出,输入和输出操作是由istream输入流和ostream输出流类提供的。iostream是从这两个类派生的,允许双向输入和输出。这个库定义了下列三个标准流对象。,cin,,标准输入的,istream,类对象,使用户能够从终端读数据,默认是键盘。,cout,,标准输出的,ostream,类对象,使用户能够从终端写数据,默认是屏幕。,cerr,,标准错误的,ostream,类对象,,cerr,输出程序错误,默认是屏幕。,15.1.1 输出操作符,cout”Hello World!n”;,输出结果,Hello World!,输出操作符可以接收任何系已经定义好的数据类型的参数,如int、char*和string等数据类型。任何表达式和函数,只要他们的计算结果是cout能够输出的数据类型就可以接收。,【范例15-1】使用“cout”和“,【范例15-3】标准输入和输出示例,15.2 流状态,15.2.1 常用的流状态,15.2.2 有参数的常用的流状态,15.2.1 常用的流状态,状态名称,含义,showpos,在整数和零前显示+号,showbase,十六进制整数前加0 x,八进制整数前加0,showpoint,浮点输出即使小数点后都是零也加小数点,left,左对齐,右边填充字符,right,右对齐,左边填充字符,dec,十进制显示整数,oct,八进制显示整数,hex,十六进制显示整数,fixed,定点数格式输出,scientfic,科学计数法输出,15.2.1 常用的流状态,取消流状态的操作有如下一些。,noshowpos,noshowbase,noshowpoint,dec、oct和hex,left和right是彼此对立的,设置一个另一个就自动取消了。,15.2.1 常用的流状态,【范例15-4】常用流状态,01#include,02#include,03 using namespace std;,04 void main(),05 ,06 coutshowpos123noshowposendl;/输出123前面的“+”号,再取消该状态,07 couthex18 showbase12noshowbaseendl;/输出十六进制标志“0 x”,08 cout123.00 showpoint123.00noshowpointendl;/输出小数点后的零,09 coutfixed123.456endl;/定点数格式输出,10 coutscientific123.456endl;/科学计数法输出,11 ,15.2.2 有参数的常用的流状态,这里我们介绍三个有参数的常用的流状态。,1.不能与流输出符连用的,fill(char)/设置填充字符,默认为右对齐,即左填充,precision(int)/设置有效位数,width(int)/设置显示宽度,这里需要注意的是,它是一次性操作的,第二次再使用将无效,默认值为width(0),即仅显示数值,例如,cout.width(5);,cout.fill(a);,cout123;,输出结果,aa123,15.2.2 有参数的常用的流状态,2.与流输出符连用的,setfill(char)/设置填充字符,setprecision(int)/设置有效位数,setw(int)/设置显示宽度,例如,coutsetw(5)setfill(a)123endl;,输出结果,aa123,例如,d=1.23456;,coutsetprecision(n)dendl;/设置精度输出,然后输出横向跳格,如果n=0或者1时,输出1;如果n=2时,输出1.2;如果n=3时,输出1.23。不同精度导致不同输出结果,根据你的需要使用setprecision()函数。,15.3.1 get()函数,istream的成员函数get()功能是一次读入一个字符,对空白符如空格、回车、制表符和换行符一并读入。它有以下三种格式。,1.第一种形式,int get(),功能:读取一个字符,返回类型是整型。,15.3.1 get()函数,01#include/包含标准输入输出头文件,02 using namespace std;,03 void main(),04 ,05 int ch;/声明整型变量ch,06 ch=cin.get();/使用get函数接收输入字符,并存在ch中,赋值符号两边无数据类型转换,07 coutchendl;/输出ch,08 ,15.3.1 get()函数,2.第二种形式,istream&get(char&ch),功能:读取一个字符,包括空白符,并将它存储到ch中。它返回被应用的istream对象。,下面代码说明这种形式如何使用。,void main(),char ch;,cin.get(ch);/输入字符ch,coutchendl;/输出字符ch,运行结果,a,a,15.3.1 get()函数,01#include,02 int main(),03 ,04 const int length=1024;/定义常量length,05 char strlength;/声明字符数组,06 cin.get(str,length,A);/声明字符数组,07 coutstrendl;/声明字符数组,08 ,15.3.2 getline()函数,getline()和get()的功能基本相同,用于一次读入一个串字符,直到读入字符个数大于给定值,或者遇到用户给定的delimiter结束符。它能够自动丢弃delimiter,并没有将其插入到string中。,使用格式如下,istream,15.3.3 read()函数,01#include,02 void main(),03 ,04 char*str=new char;/定义字符指针str,05 cout”请输入5个字符”endl;,06 cin.read(str,5);/输入字符串,cin函数只读入前5个字符存储到str,07 coutstrendl;/输出字符串str,08 ,15.4 行输出,15.4.1 put()函数,15.4.2 write()函数,15.4.1 put()函数,put()的作用是输出一个字符,使用格式如下:,ostream,ch用于存储需要输出的字符。,01#include,02 int main(),03 ,04 char str6=”Hello”;,05 cout.put(A);/输出字符“A”,06 cout.put(n);/输出字符回车换行,07 cout.put(str0);/输出字符“H”,08 coutendl;,09 ,15.4.2 write()函数,输出一个指定长度的字符串。,格式,ostream,01#include,02#include,03 using namespace std;,04 void main(),05 ,06 char*str=”Hello”;,07 cout.write(str,strlen(str)endl;/测试字符数str的长度,以该长度输出字符串,08 cout.write(“Hello World”,6)m,则m自动取n值。,例如,char*s=”abcde”;,printf(“%s,%2s,%6.2s,%.2s,%-6.2s,n”,s,s,s,s);,输出结果,abcde,abcde,ab,ab,ab ,15.5 printf函数,(5)f格式符,用来以小数形式输出实数,不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出6位小数(Visual C+6.0默认输出6位小数位)。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为6或位,双精度一般为15或16位。,.,m表示输出数据所在列数(包括小数点所在列),n表示截取小数位数。如果n数值长度小于,则左端补空格,也就是右对齐。,-.,左对齐,右端补空格。,15.6 随机数发生器函数,C+标准函数库提供一个随机数发生器rand函数,它返回0,MAX之间均匀分布的伪随机整数。rand函数不接受参数,默认以1为种子(即起始值)。随机数发生器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义。这是有意设计的,目的是为了便于程序的调试。,另一个函数srand,可以指定不同的数(无符号整数)为种子。但是如果种子相同,伪随机数列也相同。一个办法是让用户输入种子,但是仍然不理想。比较理想的是用变化的数,比如时间来作为随机数生成器的种子。种子不同,所以产生的随机数也不同。time的值只要两次运行的间隔超过1秒。,15.6 随机数发生器函数,01#include,02#include,03#include,04#define MAX 100,05 void main(),06 ,07 srand(unsigned)time(NULL);/随机数播种函数,08 for(int i=0;i10;i+)/产生十个随机数,09 coutrand()%MAXendl;/设定随机数范围并输出,10 ,15.6 随机数发生器函数,产生,之间随机数公式:,n=a+rand()%(b-a+1),15.7 字符串操作,我们可以按照C语言字符串数组的形式读取字符串,也可以使用string类型的形式读取字符串。使用string类型的好处是,字符串相关的内存可以被自动管理,而C语言字符串需要先声明足够大存储空间才能读入字符串。,15.7 字符串操作,【范例15-12】使用字符串,【范例15-13】输出菱形,15.8 命令行处理,C+标准允许主函数main()有或没有参数列表,所以我们可以在主函数main()中使用一个或多个的参数。,int main(int argc,char*argv),这是main函数通常的写法,其中第一个参数argc,表示传递给主函数main()有多少个参数,第2个参数argv以字符串数组的形式用来接收真正的参数。,main()函数本身是索引为0的参数,所以,argc至少为1。用户在控制台环境中程序路径和名称后键入含参数将传递给argv1,argv2等。,15.8 命令行处理,如果程序名称为main,并且已经编译链接生成了可执行文件,键入如下字符。,D:Finalch-15 main 1,值1将会传递给argv1。当然输出几个参数,什么参数取决于你的程序是编写的。因为参数argv类型是字符串,所以如果需要进行数据转换,你编写的代码就得完成这些工作了。,15.9 综合应用,【范例15-15】猜数字游戏,随机生成一个0到9直接任意整数作为被猜数字,循环输入你猜的数字,告诉你猜大了还是猜小了,直到猜中,同时统计猜的次数。,15.11 跟我上机,在Visual C+6.0中,新建【C+Source File】源程序,实现以下功能:,编写程序,实现输入用户的姓名、年龄、性别等数据,然后再输出,当用户名为空时或者其他信息不全时,输出错误。尝试使用多种输入输出函数。,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服