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

营销类型的公司网站/深圳网站设计专业乐云seo

营销类型的公司网站,深圳网站设计专业乐云seo,自己做网站花多少钱,建设网站怎么賺钱目录 一.C标准IO流 1.operator bool 二.C文件IO流 1.文件读取 ifstream (1)ifstream继承istream (2)ifstream 构造函数 (3)ifstream,get读取整个文件 (4)>&g…

目录

一.C++标准IO流

1.operator bool

二.C++文件IO流

1.文件读取 ifstream

(1)ifstream继承istream

(2)ifstream 构造函数 

(3)ifstream,get读取整个文件

(4)>> 读取文件

2.文件输入 ofstream

(1)ofstream继承ostream

(2)ofstream 构造函数 

(3)拷贝文件  ifstream 搭配 ofstream

3.二进制读写

三.stringstream

1.用途:将 整形/自定义类型 转字符串

2.功能使用

(1)将数值类型数据格式化为字符串。

(2) 真正用法:自定义类型转字符串

(3) 字符串 转 自定义类型

箭头是子类继承,例如istreamostream都继承iosstreamostream都是ios 子类;文件读写的ifstrem继承istreamofstream继承ostream

注意:他们用法相同,只是去向不同:istream去向是控制台;fstream去向是文件;sstringstream去向是string对象

一.C++标准IO

while (scanf("%s", a) != EOF)如何终止?     while (cin>>b)如何终止?

答:ctrl z+换行 是规定,ctrl c 是发送信号杀死进程(一般不建议ctrl c)。

int main()
{string str;while (cin >> str) // operator>>(cin, str){cout << str << endl;}char buff[128];while (scanf("%s", buff) != EOF){printf("%s\n", buff);}return 0;
}

cin >> strscanf("%s", buff) 自定义类型无法做真假逻辑判断,那他们在while循环中是如何判断返回值的?——用operator bool

1.operator bool

operator bool:本质是为了支持自定义类型对象转换成bool类型,转换逻辑是自己设置的。(operator int 就是把自定义类型对象转换成int类型)

解释下面:operator bool()  这里是把Date对象转换成bool,返回值就是bool类型

operator char()这里把Date对象转换成char,返回值就是char类型

class Date
{
public:Date(int year,int month,int day):_year(year),_month(month),_day(day){}operator bool(){if (_year < 1000){return false;}else{return true;}}operator char(){return 'a';}private:int _year;int _month;int _day;
};int main()
{Date d1(999, 10, 20);Date d2(2024, 6, 5);bool ret1 = d1;//支持自定义类型对象转换成bool类型bool ret2 = d2;//会调用operator bool(),将d2传过去,进行判定返回cout << ret1 << endl;cout << ret2 << endl;Date d3(2324, 5, 6);char ch = d3;cout << ch << endl;return 0;
}

istream类型对象转换为逻辑条件判断值
实际上我们看到使用while(cin>>i)去流中提取对象数据时,调用的是operator>>,返回值是
istream类型的对象,那么这里可以做逻辑条件值,源自于istream的对象又调用了operator
bool,operator bool调用时如果接收流失败,或者有结束标志,则返回false。

#include<iostream>
#include<string>
#include<fstream>
#include<sstream>
using namespace std;
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){}// 支持Date对象转换成booloperator bool(){// 这里是随意写的,假设输入_year为0,则结束if (_year < 1)return false;elsereturn true;}
private:int _year;int _month;int _day;
};int main()
{Date d1 = -1;Date d2 = { 2022, 10, 11 };bool ret1 = d1;    支持自定义类型对象转换成bool类型bool ret2 = d2;    支持自定义类型对象转换成bool类型cout << ret1 << endl;    打印结果:0(false)cout << ret2 << endl;    打印结果:1(true)if (d1) 这里本质上也是调用了operator bool,d1的Date类型转成了bool类型去做判断{}return 0;
}

二.C++文件IO

1.文件读取 ifstream

(1)ifstream继承istream

operator>>使用

int main()
{//在file.txt这个文件中存储了“asdf”char str[256];ifstream ifs("file.txt");ifs >> str;  //将文件中的内容提到str中cout << str;
}

(2)ifstream 构造函数 

①ifstream()

先创建一个无参的ifstream对象,再open打开响应文件。

②explicit ifstream (const char* filename, ios_base::openmode mode = ios_base::in);

直接传参:filename:文件名称。mode:打开方式,可以不传。(把filename中内容读取到ifstream对象中)

        input从头开始读,output输出不是给ifstream用的,binary 打开图片视频等,at end 追加写,

(3)ifstream,get读取整个文件

get()每次读一个字符

#include<iostream>
#include<fstream>
using namespace std;int main()
{ifstream ifs("test1.txt");while (ifs){char ch = ifs.get();cout << ch;}return 0;
}

(4)>> 读取文件

>> 自动过滤空格和换行: >>认为空格/换行只是一个间隔,会自动忽略

#include<iostream>
#include<fstream>
using namespace std;int main()
{ifstream ifs("test1.txt");char ch[256];while (ifs>>ch){cout << ch;}return 0;
}

2.文件输入 ofstream

(1)ofstream继承ostream

  operator<<使用

#include<iostream>
#include<fstream>
using namespace std;int main()
{char str[256] = "aaaaaa111112222";ofstream ofs("file.txt");ofs << str;return 0;
}

(2)ofstream 构造函数 

①ofstream()

先创建一个无参的ofstream对象,再open打开响应文件。

②explicit ifstream (const char* filename, ios_base::openmode mode = ios_base::in);

直接传参:filename:文件名称。mode:打开方式,可以不传。(把filename中内容读取到ifstream对象中)


(3)拷贝文件  ifstream 搭配 ofstream
int main()
{//打开文件“读”ifstream ifs("test1.txt");//打开文件“存”ofstream ofs("file.txt");while (ifs){//一个一个的取字符char ch = ifs.get();ofs << ch;}return 0;
}

3.二进制读写

注意:二进制读写只能用数组,不能string,string是指针,进程A写入,进程B读取string时就是野指针;文本读写可以用string,WriteText 中调的流插入 ofs << info._address << endl; 调用了string的operator<<重载

 
#include<iostream>
#include<fstream>
using namespace std;struct ServerInfo
{char _address[256]; //这里只能用数组,不能string,string是指针,进程A写入,进程B读取string时就是野指针//string _address;int _port;
};struct ConfigManager
{
public:ConfigManager(const char* filename):_filename(filename){}void WriteBin(const ServerInfo& info){//  1 2 4 8 16ofstream ofs(_filename, ios_base::out | ios_base::binary);  //打开一个文件ofs.write((const char*)&info, sizeof(info));    //向该文件写入 info的内容}void ReadBin(ServerInfo& info){   //把_filename文件读入ifs中,read把该文件内容读到info中去ifstream ifs(_filename, ios_base::in | ios_base::binary);ifs.read((char*)&info, sizeof(info));}
private:string _filename; // 配置文件
};int main()
{ServerInfo winfo = { "https://legacy.cplusplus.com/reference/ios/ios/eof/", 80 };//二进制写:ConfigManager cf_bin("test.bin");   //打开文件test.bin即可看到cf_bin.WriteBin(winfo); //因为是二进制写入,80整形被一个一个字节读到文件中就显示不出来	//二进制读:ServerInfo rbinfo;cf_bin.ReadBin(rbinfo);cout << rbinfo._address << "  " << rbinfo._port << "  ";return 0;
}

test.bin文件:(因为是二进制写入,80整形被一个一个字节读到文件中就显示不出来:

把test.bin文件中二进制的内容再二进制读出来的结果:

三.stringstream

stringstream 是 istringstream 和 ostringstream 的功能集合版,一般不使用stringstream,就直接用 istringstream 和 ostringstream 即可

1.用途:将 整形/自定义类型 转字符串

在 C 语言中,如果想要将一个整形变量的数据转化为字符串格式,如何去做?
1. 使用 itoa() 函数
2. 使用 sprintf() 函数
但是两个函数在转化时,都得 需要先给出保存结果的空间 ,那空间要给多大呢,就不太好界定,
而且 转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃 。

int main()
{int n = 123456789;char s1[32];_itoa(n, s1, 10);char s2[32];sprintf(s2, "%d", n);char s3[32];sprintf(s3, "%f", n);return 0;
}

2.功能使用

在C++中,可以使用stringstream类对象来避开此问题。
在程序中如果想要使用stringstream,必须要包含头文件。在该头文件下,标准库三个类:
istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作,本文主要介绍stringstream。 stringstream主要可以用来:

(1)将数值类型数据格式化为字符串。

(整形转字符串类型没意义,to_string完全可以代替)

int main()
{int i = 1;double j = 1.11;ostringstream osm;osm << i <<" "<< j;string str = osm.str();cout << str << endl;return 0;
}

(2) 真正用法:自定义类型转字符串
#include<iostream>
#include<sstream>
using namespace std;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){}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;
}int main()
{Date d(2024, 11, 9);ostringstream osm;osm << d;string str = osm.str();cout << str << endl;return 0;
}

oss<<d1 借助上面Date内部的 operator << ,就可以转成字符串

(3) 字符串 转 自定义类型
int main()
{string str("2024 11 9");Date d;istringstream ism(str);ism >> d;cout << d << endl;return 0;
}

相关文章:

C++:C++的IO流

目录 一.C标准IO流 1.operator bool 二.C文件IO流 1.文件读取 ifstream &#xff08;1&#xff09;ifstream继承istream &#xff08;2&#xff09;ifstream 构造函数 &#xff08;3&#xff09;ifstream&#xff0c;get读取整个文件 &#xff08;4&#xff09;>&g…...

「QT」几何数据类 之 QLine 整型直线类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

day58 图论章节刷题Part09(dijkstra(堆优化版)、Bellman_ford 算法)

dijkstra(堆优化版) 朴素版的dijkstra解法的时间复杂度为 O(n^2)&#xff0c;时间复杂度只和 n&#xff08;节点数量&#xff09;有关系。如果n很大的话&#xff0c;可以从边的角度来考虑。因为是稀疏图&#xff0c;从边的角度考虑的话&#xff0c;我们在堆优化算法中最好使用…...

【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(1)

前言 大家好吖&#xff0c;欢迎来到 YY 滴计算机网络 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 本博客主要内容&#xff0c;收纳了一部门基本的计算机网络题目&#xff0c;供yy应对期中考试复习。大家可以参考 本章是去答案版本。带答案的版本在下…...

智能出行助手:SpringBoot共享汽车管理平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理共享汽车管理系统的相关信息成为必然。开发…...

【月之暗面kimi-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …...

Flink实现实时数据处理

代码如下&#xff1a; #!/usr/bin/python # -*- coding: UTF-8 -*-from pyflink.datastream import StreamExecutionEnvironment from pyflink.table import StreamTableEnvironment, EnvironmentSettings, DataTypes# 初始化执行环境 s_env StreamExecutionEnvironment.get_…...

11.9.2024刷华为

文章目录 HJ31 单词倒排HJ32 密码提取语法知识记录 傻逼OD题目又不全又要收费&#xff0c;看毛线&#xff0c;莫名奇妙 HW这叼机构别搁这儿害人得不得&#xff1f; 我觉得我刷完原来的题目 过一遍华为机考的ED卷出处&#xff0c;就行了 HJ31 单词倒排 游戏本做过了好像 HJ3…...

Chromium 中chrome.system.storage扩展接口定义c++

一、chrome.system.storage 您可以使用 chrome.system.storage API 查询存储设备信息&#xff0c;并在连接和分离可移动存储设备时收到通知。 权限 system.storage 类型 EjectDeviceResultCode 枚举 "success" 移除命令成功执行 - 应用可以提示用户移除设备。…...

【Qt聊天室客户端】登录窗口

1. 验证码 具体实现 登录界面中创建验证码图片空间&#xff0c;并添加到布局管理器中 主要功能概述&#xff08;创建一个verifycodewidget类专门实现验证码操作&#xff09; 详细代码 // 头文件#ifndef VERIFYCODEWIDGET_H #define VERIFYCODEWIDGET_H#include <QWidget>…...

如何显示模型特征权重占比图【数据分析】

可视化模型的特征权重 1、流程 1、导入库: numpy:用于处理数组和矩阵。 matplotlib.pyplot:用于绘图。 sklearn.datasets:用于加载数据集。 sklearn.ensemble.RandomForestClassifier:用于训练随机森林模型。2、加载数据集: 使用load_iris函数加载Iris数据集。3、训练模…...

Ubuntu24安装MySQL

下载deb包&#xff1a; 先更新系统包&#xff1a; sudo apt update sudo apt update -y下载mysql: wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb 安装deb包&#xff1a; sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb目前mysql还没有正式支持Ubun…...

微服务架构面试内容整理-Eureka

Spring Cloud Netflix 是一个为构建基于 Spring Cloud 的微服务应用提供的解决方案,利用 Netflix 的开源组件来实现常见的分布式系统功能。以下是 Spring Cloud Netflix 的一些主要组件和特点: 服务注册与发现:Eureka 是一个 RESTful 服务,用于注册和发现微服务。服务实例在…...

qt QErrorMessage详解

1、概述 QErrorMessage是Qt框架中用于显示错误消息的一个对话框类。它提供了一个简单的模态对话框&#xff0c;用于向用户显示错误或警告消息。QErrorMessage通常用于应用程序中&#xff0c;当需要向用户报告错误但不希望中断当前操作时。它提供了一个标准的错误消息界面&…...

SpringBoot 将多个Excel打包下载

在Spring Boot应用中&#xff0c;如果你需要将多个Excel文件打包成一个ZIP文件并提供下载&#xff0c;你可以使用一些Java库来帮助完成这个任务。这里我将展示如何使用Apache POI来生成Excel文件&#xff0c;以及使用Java.util.zip来创建ZIP文件&#xff0c;并通过Spring Boot的…...

分页存储小总结

知识点: 什么是分页存储? 将内存空间分为一个个大小相等的分区&#xff08;比如&#xff1a;每个分区4KB&#xff09;&#xff0c;每个分区就是一个“页框”&#xff08;页框页帧内存块物理块物理页面&#xff09;。每个页框有一个编号&#xff0c;即“页框号”&#xff08;…...

Star-CCM+应用篇之动力电池温度场仿真操作流程与方法

1 动力电池温度场仿真项目 电池包内模组温度分布、电芯温度分布、温升速率、充电时间等。 2 动力电池温度场仿真分析流程图 图1 电池包热流场分析流程 3 动力电池温度场仿真参数需求 类别...

Spring Boot应用开发:从入门到精通

Spring Boot应用开发&#xff1a;从入门到精通 Spring Boot是Spring框架的一个子项目&#xff0c;旨在简化Spring应用的初始搭建和开发过程。通过自动配置和约定大于配置的原则&#xff0c;Spring Boot使开发者能够快速构建独立的、生产级别的Spring应用。本文将深入探讨Sprin…...

【JAVA项目】基于jspm的【医院病历管理系统】

技术简介&#xff1a;采用jsp技术、MySQL等技术实现。 系统简介&#xff1a;通过标签分类管理等方式&#xff0c;实现管理员&#xff1b;个人中心、医院公告管理、用户管理、科室信息管理、医生管理、出诊信息管理、预约时间段管理、预约挂号管理、门诊病历管理、就诊评价管理、…...

Python中的常见配置文件写法

在软件开发过程中&#xff0c;开发者常常需要利用一些固定的参数或常量。对于这些相对恒定且频繁使用的元素&#xff0c;一种常见的做法是将它们集中存储在一个特定的文件中&#xff0c;以避免在多个模块代码中重复定义&#xff0c;从而维护核心代码的清晰度和整洁性。 具体而…...

语义分割实战——基于PSPnet神经网络动物马分割系统源码

第一步&#xff1a;准备数据 动物马分割数据&#xff0c;总共有328张图片&#xff0c;里面的像素值为0和1&#xff0c;所以看起来全部是黑的&#xff0c;不影响使用 第二步&#xff1a;搭建模型 psp模块的样式如下&#xff0c;其psp的核心重点是采用了步长不同&#xff0c;po…...

Python+Appium编写脚本

一、环境配置 1、安装JDK&#xff0c;版本1.8以上 2、安装Python&#xff0c;版本3.x以上&#xff0c;用来解释python 3、安装node.js&#xff0c;版本^14.17.0 || ^16.13.0 || >18.0.0&#xff0c;用来安装Appimu Server 4、安装npm&#xff0c;版本>8&#xff0c;用…...

RK3288 android7.1 适配 ilitek i2c接口TP

一&#xff0c;Ilitek 触摸屏简介 Ilitek 提供多种型号的触控屏控制器&#xff0c;如 ILI6480、ILI9341 等&#xff0c;采用 I2C 接口。 这些控制器能够支持多点触控&#xff0c;并具有优秀的灵敏度和响应速度。 Ilitek 的触摸屏控制器监测屏幕上的触摸事件。 当触摸发生时&am…...

C++ 越来越像函数式编程了!

C 越来越像函数式编程了 大家好&#xff0c;欢迎来到今天的博客话题。今天我们要聊的是 C 这门老牌的强类型语言是如何一步一步向函数式编程靠拢的。从最早的函数指针&#xff0c;到函数对象&#xff08;Functor&#xff09;&#xff0c;再到 std::function 和 std::bind&…...

maven工程结构说明

1、maven工程文件目录 |-- pom.xml # Maven 项目管理文件 |-- src # 放项目源文件|-- main # 项目主要代码| |-- java # Java 源代码目录| | -- com/example/myapp…...

【GESP】C++一级真题练习(202312)luogu-B3921,小杨的考试

GESP一级真题练习。为2023年12月一级认证真题。逻辑计算问题。 题目题解详见&#xff1a;【GESP】C一级真题练习(202312)luogu-B3921&#xff0c;小杨的考试 | OneCoder 【GESP】C一级真题练习(202312)luogu-B3921&#xff0c;小杨的考试 | OneCoderGESP一级真题练习。为2023…...

游戏中Dubbo类的RPC设计时的注意要点

一.消费方 1.需要使用到动态代理&#xff0c;代理指定的接口&#xff0c;这样子接口被调用时&#xff0c;就可以拿到&#xff1a;"类名 方法名参数返回值" 这些类型。 2.既然是rpc&#xff0c;那么接口被调用时&#xff0c;肯定在动态代理中会进行网络消息的发送&a…...

ARXML汽车可扩展标记性语言规范讲解

ARXML: Automotive Extensible Markup Language &#xff08;汽车可扩展标记语言&#xff09; xmlns: Xml name space &#xff08;xml 命名空间&#xff09; xsd: Xml Schema Definition (xml 架构定义) 1、XML与HTML的区别&#xff0c;可扩展。 可扩展&#xff0c;主要是…...

Hadoop(HDFS)

Hadoop是一个开源的分布式系统架构&#xff0c;旨在解决海量数据的存储和计算问题&#xff0c;Hadoop的核心组件包括Hadoop分布式文件系统&#xff08;HDFS&#xff09;、MapReduce编程模型和YARN资源管理器,最近需求需要用到HDFS和YARN。 文章目录 HDFS优缺点HDFS的读写原理 常…...

机器学习系列----梯度下降算法

梯度下降算法&#xff08;Gradient Descent&#xff09;是机器学习和深度学习中最常用的优化算法之一。无论是在训练神经网络、线性回归模型&#xff0c;还是其他类型的机器学习模型时&#xff0c;梯度下降都是不可或缺的一部分。它的核心目标是最小化一个损失函数&#xff08;…...