当前位置: 首页 > news >正文

深圳网站建设制作公司排名班级网站模板

深圳网站建设制作公司排名,班级网站模板,wordpress图片批量设置,网站建设php书籍C流类库简介 C为了克服C语言中的scanf和printf存在的缺点。#xff0c;使用cin/cout控制输入/输出。 cin#xff1a;表示标准输入的istream类对象#xff0c;cin从终端读入数据。cout#xff1a;表示标准输出的ostream类对象#xff0c;cout向终端写数据。cerr#xff…C流类库简介 C为了克服C语言中的scanf和printf存在的缺点。使用cin/cout控制输入/输出。 cin表示标准输入的istream类对象cin从终端读入数据。cout表示标准输出的ostream类对象cout向终端写数据。cerr表示标准错误输出非缓冲方式导出程序错误信息。clog表示标准错误输出缓冲方式导出程序错误信息。 为了在程序中使用cin/cout必须在程序中包含iostream库的相关头文件格式为:#include iostream iostream类同时从istream输入流和ostream输出流类派生出来允许双向输入/输出。输入由重载的运算符完成输出由重载的运算符完成输入/输出格式为cin变量名/cout变量名。 除了用户端的输入/输出C还提供了文件的输入/输出类 ifstream从istream派生而来把文件绑定到程序上输入。ofstream从ostream派生而来把文件绑定到程序上输出。fstream从iostream派生而来把文件绑定到程序上输入/输出。 使用iostream库的文件流必须包含相关的头文件#include fstream 常用的流类库层次结构如图所示 ios类作为流类库的基类主要派生了istream、ostream类由这两个类又派生了很多使用的流类除ifstream类、ofstream类、iostream类外还有strstream输入/输出串流类、istrstream输入串流类、ostrstream输出串流类等。下面将对这些流类的作用及用法分别进行介绍。 输入流/输出流格式 基本输出流 C的ostream提供了丰富的格式化和误格式化的输出功能用流插入运算符输出标准数据类型put库成员函数输出字符以八进制、十进制、十六进制数的形式输出数据以各种精确方式输出浮点型数据以科学计数法定点输出数据等。 流输出考研用流插入运算符即重载的左移位运算符来完成。运算符左边的操作数时istream类的一个对象如cout右边可以是C的合法表达式。 C还提供了指针预定义输出运算符允许输出项为显示对象的地址。在默认情况下地址以十六进制的形式显示。 基本输入流 对应于输出C提供了实用的输入功能。类似于输出流中的流插入运算符输入中引入了流读取运算符也称为提取运算符。 流输入可以用流读取运算符即重载的右移位运算符来完成。类似于运算符流读取运算符是双目运算符左边的操作数是istream类的一个对象如cin右边的操作数是系统定义的任何数据类型的变量 注意1. 运算符也支持级联输入。在默认情况下运算符会跳过空格读入后面与变量类型相应的值。因此给一组变量输入值时要用空格或换行符将输入的数值间隔开。 2. 当输入字符串时运算符会跳过空格读入后面的非空格符直到遇到另外一个空格才结束并在字符串末尾自动放置字符\0作为结束标志。 3. 输入数据时不仅检查数据间的空格还要进行类型检查、自动匹配 格式化输入/输出 在很多情况下用户希望自己控制输出格式。C提供了两种格式控制方法用ios类成员函数控制格式和用操纵符控制格式。 1. ios类成员函数控制格式 在ios类中格式控制函数主要是通过对状态标志字、域宽、填充字及其精度来完成的。输入/输出格式由一个long int型的状态标志字确定。在ios类中public部分进行了枚举见下表 状态标志作用skipws跳过输入中的空白left左对齐格式输出right右对齐格式输出internal在符号位和数值之间填入字符dec十进制数显示oct八进制数显示hex十六进制数显示showbase产生前缀指示数值的进制基数showpoint总是显示小数uppercase十六进制数显示0X科学计数法显示Eshowpos在非负数中显示“”boolalpha把true和false表示为字符串scientific以科学记数法形式显示浮点数fixed以小数形式显示浮点数unitbuf输出操作后立即刷新所有流stdio输出操作后刷新stdout和stderr 设置状态标志 设置状态标志可使用long ios::setf(long flags)函数格式为stream_obj.setf(ios::enum_type); 说明其中stream_obj为被影响的流对象常用的是cin和cout。enum_type为上表中列举的值。要想设置多个状态彼此间用运算符“|”连接不能连接相反的格式控制符。清除状态标志 清除状态标志可使用long ios::unsetf(long flags)格式为stream_obj.unsetf(ios::enum_type);使用方法和ios::setf()相同。取状态标志 取状态标志用flags()在ios类中重载了两个版本格式为long ios::flags();或long ios::flags(long flag);前者用于返回当前状态标志字后者将状态标志字存储在flag内。需要注意的是与setf()设置状态标志字不同flags()是取状态标志字的。设置域宽 域宽用于控制输出格式在ios类中重载了两个函数控制域宽原型为int ios::width();或者 int ios::width(int w);第一个函数得到当前的域宽了第二个函数用来设置新的域宽并返回原来的域宽。需要注意的是所设置的域宽仅仅对下一个输出的操作有效当完成一次输出操作后域宽又恢复为0。设置填充字符 填充字符的作用是当输出值不满域宽时用设定的字符来填充默认填充的字符为空字符。实际应用中填充字符函数与设置域宽函数配合使用否则无空可填毫无意义。ios类提供了两个重载的成员函数来操作填充字符原型为char ios::fill();或者char ios::fill(char c);第一个函数返回当前使用的填充字符第二个函数设置新的填充字符并返回设置前的填充字符。设置显示精度 类似地ios类也提供了重载的两个函数来显示精度原型为int ios::precision();或者int ios::precision(int num);第一个函数返回当前数值精度值第二个函数设置新的显示精度并返回设置前的精度。 2.操纵符控制格式 使用ios类成员函数控制输入/输出格式必须靠流对象来调用而且不能直接嵌入输入/输出语句中使用不够方便。C提供了另外一种控制格式的方法称为操纵符控制符方法类似于函数的运算符。使用操纵符方法可以嵌入输入/输出语句中。 所有不带参数的操纵符定义在头文件iosream.h中带形参的操纵符定义在头文件iomanip.h中使用操纵符时需要包含相应的头文件。 提供的操纵符如下便 标志作 用ws在输入时跳过开头的空白符仅用于输入endl换行并刷输出流仅用于输出ends插入一个空字符仅用于输出flush刷新一个输出流仅用于输出skipws在输入时跳过输入中的空白符仅用于输入noskipws在输入时不跳过输入中的空白符仅用于输入internal将填充字符加到符号和数值之间dec十进制数显示可用于输入/输出oct八进制数显示可用于输入/输出hex十六进制数显示可用于输入/输出showbase产生前缀指示数值的进制基数noshowbase不产生基数前缀showpoint总是显示小数noshowpoint只有当小数存在时显示小数uppercase十六进制数显示0X科学计数法显示Enouppercase十六进制数显示0x科学计数法显示eshowpos在非负数中显示“”noshowpos在非负数中不显示“”boolalpha把true和false表示为字符串noboolalpha把true和false表示为1和0scientific以科学记数法形式显示浮点数fixed以小数形式显示浮点数setfill(ch)用ch填充空白字符setprecision(n)将浮点数精度设置为nsetw(w)按照w个字符来读或写数值setbase(b)以进制基数b来输出整数值setiosflags(n)设置有n指定的格式标志resetiosflags(n)清除有n指定的格式标志 用户自定义的操纵符控制格式 在C中除系统提供的预定义操纵符之外还允许用户定义操纵符便于控制一些频繁使用的格式操作使格式控制更加方便。 自定义输出流操纵符算子函数格式为ostream 自定义输出操纵符算子函数名(ostream stream){return stream;} 自定义输入流操纵符算子函数格式为istream 自定义输出操纵符算子函数名(istream stream){return stream;} 其他输入/输出函数 get()和put() get(char ch)从输入流中提取一个字符包括空白字符并把它存储在ch中返回被应用的istream对象。此函数在类istream里。 对应于get()类ostream提供了put(char ch)用于输出字符。 gei()的重载版本get(char *str, streamsize size,char delimiter\n); 其中str代表一个字符数组用来存放被读取的字符。size代表可以从istream中读入字符的最大数目。delimiter代表如果遇到它就要结束读取字符的动作delimiter本身不会被读入而是留在istream中作为istream的下一个字符。常见的一个错误是执行第二个get()时省略delimiter。getline() 使用get()输入字符串时经常忘记去掉delimiter所以引入函数getline()其原型和get()的重载一样getline(char *str, streamsize size,char delimiter\n); 使用getline()比get()方便它除去了delimiter而不是将其留作下一个字符。write()和read() ostream类成员函数write()提供一种输出字符数组的方法。它不是输出“直到终止字符为止”而是输出某个长度的字符序列包括空字符。函数原型如下write(char *str, streamsize size); 其中str是要输出的字符数组length是要显示的字符个数。write()返回当前被调用的ostream类对象。 与ostream类的write()对应的是istream类的read()原型如下read(char *str, streamsize size); read()从输入流中读取size个连续的字符并将其放在地址从str开始的内存中。gcount()返回由最会一个read()调用所读取的字节数而read()返回当前被调用的istream类对象。 用户自定义类型的输入/输出 当实现一个类的类型时有时需要这个类支持输入和输出的操作以便可以将类对象嵌入输入或输出流中。对于用户自定义的数据类型的输入/输出可以通过重载运算符和运算符实现。 重载输出运算符 输出运算符又称为流插入运算符。定义其重载函数的格式为 ostream operator(ostream out, class_name obj) {out obj.data1;out obj.data2;return out; }函数中第一个参数out是对ostream对象的引用即out必须是输出流对象第二个参数是用户自定义要输出的类对象的引用。 运算符不能作为类的成员函数只能作为友元函数要访问类的私有成员来实现。 重载输入运算符 输入运算符又称为流提取运算符。定义其重载函数的格式为 istream operator(istream in, class_name obj) {in obj.data1;in obj.data2;return in; }函数中第一个参数in是对istream对象的引用即in必须是输入流对象第二个参数是用户自定义要输入的类对象的引用。 与运算符类似运算符也不能作为类的成员函数只能作为类的友元函数或独立函数。 例如运算符和运算符重载 #include iostream #include string using namespace std; class Word {char* word;size_t iNum;//存储字符个数 public:Word(const char* const str NULL);virtual ~Word(){if (word)delete[]word;}friend ostream operator (ostream out, const Word obj);friend istream operator (istream in, Word obj); };Word::Word(const char* const str) {if (str ! NULL){iNum strlen(str);word new char[iNum 1];strcpy_s(word, iNum 1, str);} }ostream operator(ostream out,const Word obj) {out obj.iNum obj.word endl;return out; }istream operator(istream in, Word obj) {char str[100];in.getline(str, 100);if (in.gcount() 0){delete[]obj.word;obj.iNum strlen(str);obj.word new char[obj.iNum 1];strcpy_s(obj.word, obj.iNum 1, str);}return in; }int main() {Word word(hello);cout word;cin word;cout word;return 0; }程序运行结果为 5hello W 1W
http://www.dnsts.com.cn/news/38840.html

相关文章:

  • linux网站架构网址大全2021
  • 杭州网站建设hzfwwl汉服销售网站建设
  • 做擦边网站低代码开发平台是什么
  • 农产品网站建设策划青岛网上房地产官网
  • 做非法网站怎么规避西昌城乡规划与建设局网站
  • 咸阳网站建设报价python php 网站开发
  • 一级a做爰片免费网站 新闻如何给一个企业的网站做推广
  • 做快餐料包的网站有哪些建设网站成本
  • 网站建设售后协议威海网站建设价格
  • 做网站商城需要什么条件保定网站制作企业
  • 什么免费网站可以链接域名哪里可以免费设计装修房子
  • 白云网站制作有哪些做室内设计好用的网站
  • 没有网站怎么做排名优化中国建设网建设通官方网站
  • 建站报价网站开发公司能不能去
  • 同ip网站有什么影响网站建设需不需要招标
  • 网站是软件吗emulate wordpress
  • 网站运营新手做网页制作好的官网
  • 网站开发项目意义爱字幕app制作视频软件下载
  • 中山网站建设模板招商可以做企业网站
  • 网站建设宣传预算抖音营销ppt课件
  • 网站推广的正确方式南平网站怎么做seo
  • 泰州网站建设腾讯的网站是谁做的
  • 做一个公司的网站应做哪些准备工作内容江门网页定制
  • 连云港市网站优化襄阳市住房和城乡建设局官方网站
  • 一个完整的网站设计需要的技术一重大连工程建设有限公司官方网站
  • 网站建设项目前景房产网络经纪人
  • 企业网站seowordpress 采集文章
  • 网站域名查询工具网站维护主要内容
  • 做5173这样的网站要多少人wordpress视频悬停
  • 德州网站建设教程wordpress分类下文章置顶