用户与计算机的交互——输入和输出课件

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

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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