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

网站信息管理平台建设网站上申请劳务资质吗

网站信息管理平台,建设网站上申请劳务资质吗,电商推广文案,百度wordpress插件文章目录 前言一、C语言的输入与输出二、什么是流#xff1f;三、C IO流C标准IO流C文件IO流以写方式打开文件以读方式打开文件 四、stringstream的简单介绍总结 前言 芜湖#xff0c;要结束喽#xff01; 一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是 … 文章目录 前言一、C语言的输入与输出二、什么是流三、C IO流C标准IO流C文件IO流以写方式打开文件以读方式打开文件 四、stringstream的简单介绍总结 前言 芜湖要结束喽 一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是 scanf () 与 printf() 。 scanf( ): 从标准输入设备(键盘)读取数据并将值存放在变量中。  printf( ): 将指定的文字 / 字符串输出到标准输出设备(屏幕)。注意宽度输出和精度输出控制。C语言借助了相应的缓冲区来进行输入与输出。 输入输出缓冲区的意义 可以屏蔽掉低级I/O的实现低级I/O的实现依赖操作系统本身内核的实现所以如果能够屏蔽这部分的差异可以很容易写出可移植的程序可以使用这部分的内容实现 “行” 读取的行为对于计算机而言是没有 “行” 这个概念有了这部分就可以定义 “行” 的概念然后解析缓冲区的内容返回一个 “行” 二、什么是流 其实“流” 的概念我们之前就有过了解现在我们再来回顾一下 “流” 即是流动的意思是物质从一处向另一处流动的过程是对一种有序连续且具有方向性的数据 其单位可以是bit,byte,packet 的抽象描述 而 C流 是指信息从外部输入设备如键盘向计算机内部如内存输入和从内存向外部输出设备显示器输出的过程。这种输入输出的过程被形象的比喻为 “流” 有序连续、具有方向性 为了实现这种流动C定义了 I/O标准类库 这些每个类都称为流 / 流类用以完成某方面的功能 三、C IO流 C系统 实现了一个庞大的类库其中 ios 为基类其他类都是直接或间接派生自 ios类 C标准IO流 C标准库提供了4个全局流对象 cin、cout、cerr、clog使用 cout 进行标准输出即数据从内存流向控制台(显示器)。使用 cin 进行标准输入即数据通过键盘输入到程序中同时 C标准库 还提供了 cerr 用来进行标准错误的输出以及 clog 进行日志的输出从上图可以看出cout、cerr、clog是 ostream类 的三个不同的对象因此这三个对象现在基本没有区别只是应用场景不同 cin为缓冲流。键盘输入的数据保存在缓冲区中当要提取时是从缓冲区中拿。如果一次输入过多会留在那儿慢慢用如果输入错了必须在回车之前修改如果回车键按下就无法挽回了。只有把输入缓冲区中的数据取完后才要求输入新的数据。输入的数据类型必须与要提取的数据类型一致否则出错。出错只是在流的状态字state中对应位置位置1程序继续。空格和回车都可以作为数据之间的分格符所以多个数据可以在一行输入也可以分行输入。但如果是字符型和字符串则空格ASCII码为32无法用cin输入字符串中也不能有空格。回车符也无法读入。cin 和 cout 可以直接输入和输出内置类型数据原因标准库已经将所有内置类型的输入和输出全部重载了 int main() {// 标准输出流cout xxxx endl;// 错误的标准输出流cerr yyyy endl;// 用于日志记录的标准输出流clog zzzz endl;int x 0;// 检查流的状态是否良好cout cin.good() endl;// 检查是否设置了 eofbitcout cin.eof() endl;// 检查是否设置了failbit或badbitcout cin.fail() endl;// 检查是否设置了badbit cout cin.bad() endl endl;cin x;cout x endl;cout cin.good() endl;cout cin.eof() endl;cout cin.fail() endl;cout cin.bad() endl endl;return 0; }对于自定义类型如果要支持 cin 和 cout 的标准输入输出需要对 和 进行重载 istream类型对象转换为逻辑条件判断值 istream operator (int val); explicit operator bool() const;实际上我们看到使用 while( cini ) 去流中提取对象数据时调用的是 operator 返回值是 istream类型 的对象那么这里可以做逻辑条件值源自于 istream 的对象又调用了 operator bool operator bool 调用时如果接收流失败或者有结束标志则返回 false 日期类 class Date {friend ostream operator(ostream out, const Date d);friend istream operator(istream in, Date d); public:Date(int year 1, int month 1, int day 1):_year(year),_month(month),_day(day){}operator bool(){// 这里是随意写的假设输入_year为0则结束if (_year 0)return false;elsereturn true;} private:int _year;int _month;int _day; };istream operator(istream in, Date d) {in d._year d._month d._day;return in; }ostream operator(ostream out, const Date d) {out d._year d._month d._day;return out; }// C IO流使用 面向对象 运算符重载 的方式 // 能更好的兼容自定义类型流插入和流提取 int main() {// 自动识别类型的本质--函数重载// 内置类型可以直接使用--因为库里面ostream类型已经实现了int i 1;double j 2.2;cout i endl;cout j endl;// 自定义类型则需要我们自己重载 和 Date d(2022, 4, 10);cout d;while (d){cin d;cout d;}return 0; }文件读写相关类 struct ServerInfo {// string _address;char _address[32];int _port;Date _date; };struct ConfigManager { public:ConfigManager(const char* filename):_filename(filename){}// 二进制// 内存中怎么存囫囵吞枣怎么写出去void WriteBin(const ServerInfo info){ofstream ofs(_filename, ios_base::out | ios_base::binary);ofs.write((const char*)info, sizeof(info));}void ReadBin(ServerInfo info){ifstream ifs(_filename, ios_base::in | ios_base::binary);ifs.read((char*)info, sizeof(info));}void WriteText(const ServerInfo info){ofstream ofs(_filename);ofs info._address info._port info._date;}void ReadText(ServerInfo info){ifstream ifs(_filename);ifs info._address info._port info._date;}private:string _filename; // 配置文件 };二进制方式写文件 // 二进制方式读写文件// (当成员是 string 时会有错误因为 string 读取的是地址而不是实际的字符串内容) int main() {ServerInfo winfo { 192.0.0.111, 80, { 2022, 4, 10 } };// 写文件ConfigManager cf_bin(test.bin);cf_bin.WriteBin(winfo);return 0; }以上说的成员使用 string 时会发生错误原因在于 二进制读写是直接将内存中的数据原样写入文件或从文件中读取到内存。对于基本数据类型如 int、char 等和固定大小的数组这种方式是可行的因为它们在内存中是连续存储的并且大小是固定的。例如int 类型通常占 4 个字节char[32] 数组占 32 个字节二进制读写可以准确地处理这些数据 当使用二进制方式将包含 std::string 成员的结构体写入文件时实际写入的是 std::string 对象内部的指针和长度等信息而不是字符串的实际内容 写入文件时假设 std::string 对象内部有一个指针 data 指向动态分配的字符串数据二进制写入操作会将这个指针的值即内存地址写入文件而不是指针所指向的实际字符串内容。 从文件读取时读取操作会将之前写入的指针值读回到内存中。但这个指针指向的是写入时的内存地址在读取时这个地址可能已经无效例如该内存可能已经被释放或被其他数据覆盖或者指向的内容已经改变。因此读取到的 std::string 对象无法正确访问实际的字符串内容从而导致错误 二进制方式读文件 int main() {ConfigManager cf_bin(test.bin);ServerInfo rbinfo;// 读文件cf_bin.ReadBin(rbinfo);cout rbinfo._ip rbinfo._port rbinfo._date endl;return 0; }文本方式写文件 int main() {ServerInfo winfo { 192.0.0.1xxxxxxxxxxxx, 80, { 2022, 4, 10 } };// 文本写ConfigManager cf_text(test.text);cf_text.WriteText(winfo);return 0; }文本方式读文件 int main() {ConfigManager cf_text(test.text);ServerInfo rtinfo;// 文本读cf_text.ReadText(rtinfo);cout rtinfo._ip rtinfo._port rtinfo._date endl;return 0; }C文件IO流 C根据文件内容的数据格式分为 二进制文件 和 文本文件 。采用文件流对象操作文件的一般步骤如下 定义一个文件流对象   ifstream ifile(只输入用)   ofstream ofile(只输出用)   fstream iofile(既输入又输出用)使用文件流对象的成员函数打开一个磁盘文件使得文件流对象和磁盘文件之间建立联系使用提取和插入运算符对文件进行读写操作或使用成员函数进行读写关闭文件 以写方式打开文件 #include fstream// 写文件 ofstream int main() {// in:读 out:写 app:追加 binary:二进制// ofstream ofs(test.txt, ofstream::out);ofstream ofs(test.txt, ofstream::out | ofstream::app);// 写进文件中ofs yyyyyyyyy endl;return 0; }以读方式打开文件 int main() {//ifstream ofs(test.cpp);ifstream ofs(C:\\Users\\lhq\\Desktop\\C中程序内存区域划分.png, ios_base::in | ios_base::binary);int n 0;while (!ofs.eof()){char ch ofs.get();//cout ch;n;}cout n endl;return 0; }四、stringstream的简单介绍 在C语言中如果想要将一个 整形变量 的数据转化为 字符串格式 如何去做 使用 itoa( ) 函数使用 sprintf( ) 函数 int main() {int n 123456789;char s1[32];_itoa(n, s1, 10);char s2[32];sprintf(s2, %d, n);return 0; }但是两个函数在转化时都得需要先给出保存结果的空间那空间要给多大呢就不太好界定 所以我们就要来学习 stringstream类 对象它的作用如下 将数值类型数据格式化为字符串 #includesstreamint main() {int a 12345678;string sa;// 将一个整形变量转化为字符串存储到 string 类对象中stringstream s;s a;s sa;cout sa endl;// clear()// 注意多次转换时必须使用 clear 将上次转换状态清空掉// stringstreams 在转换结尾时(即最后一个转换后),会将其内部状态设置为 badbit// 因此下一次转换是必须调用 clear() 将状态重置为 goodbit 才可以转换// 但是 clear() 不会将 stringstreams 底层字符串清空掉// s.str();// 将stringstream底层管理string对象设置成,// 否则多次转换时会将结果全部累积在底层string对象中s.str();s.clear();// 清空s, 不清空会转化失败double d 12.34;// 将一个浮点数变量转化为字符串存储到string类对象中s d;s sa;cout sa endl;string sValue;sValue s.str();// str()方法返回stringsteam中管理的string类型cout sValue endl;return 0; }字符串拼接 int main() {stringstream sstream;// 将多个字符串放入 sstream 中sstream first string,;sstream second string;cout strResult is: sstream.str() endl;// 清空 sstreamsstream.str();sstream third string;cout After clear, strResult is: sstream.str() endl;return 0; }总结 应该 C 的学习之路到此就结束了我回看了一下这个专栏反向迭代器、布隆过滤器、并发库等内容还没有讲解(其实我目前也没搞很懂) 之后可能会还有补充但肯定不是最近的事情~ 嗟乎C 之盛其兴也勃焉内存之危其亡也忽焉。夫编程战国之时Java 虚拟机坐大Python 弱冠弄巧C# 借势微软然终为 C 囊括四海并吞八荒。当是时也指针为矢模板为刃RAII 守疆const 镇国宰制六合何其壮也
http://www.hkea.cn/news/14441716/

相关文章:

  • 网站开发技能电商平台怎么样才能做起来
  • 邯郸网站设计招聘网网站建设中源码编程同样重要
  • 外贸联系网站湘潭seo 推广快湘潭磐石网络
  • 织梦网站怎么做模板wordpress p
  • 微网站开发一般费用多少网页制作软件免费版下载
  • 泷澄建设集团网站自己做网站能否赚钱6
  • 怎么样自己做网站接订单怎样做二维码网站
  • 苏州网站建设老板教人做窗帘的视频网站
  • 眼科医院网站设计怎么做wordpress获取点击量
  • 微信网站开发教程视频营销型企业网站建设的内容
  • 给别人做网站怎么赚钱吗网站的空间
  • 做电影网站 广告收入单位邮箱怎么注册
  • 企业网站模板 下载网站前台设计方案
  • 网站建设包括的内容有什么新乡搜狗网站推广工具
  • 上林县建设局网站xampp 如何将建好的wordpress发送到网络空间中
  • 中国建设银行笔试确认网站编程入门先学什么软件
  • 绵阳做网站优化产品设计工具
  • 泉州大型网站建设黑人与白人做爰网站
  • ps制作个人网站首页东莞网站建设环保设备
  • 做网站做哪个行业好郴州新网交友信息
  • 网站报名系统怎么做建站平台有哪些
  • 软件开发网站建设维护服务好的成都网站建设
  • 购买空间后怎么上传网站隐私页 wordpress
  • 需要做网站建设的行业有哪些在国外社交网站做产品推广
  • 呼和浩特企业网站建设网络公司怎么优化网站
  • 企业网站源码网网站建设算什么服务类型
  • 怎么健手机网站邢台市网站开发公司有哪些
  • 网站主机要怎么做东莞网站制作的方案
  • 班级网站主页怎么做网站开发及企业推广
  • 虹口基础微网站开发优秀个人网站案例