C++ 语法文件

程序运行时产生的数据都属于临时数据,程序结束就会被释放。

通过文件可以可以将数据持久化

c++中对文件操作需要包含头文件fstream

文件的类型分为两种

1.文本文件 文件以文本的ASCII码形式存储在计算机中

2.二进制文件 稳重以文本的二进制形式存储在计算机中 用户一般不能直接读懂

操作文件的三大类

ofstream

ifstream

fstream

写文件

1.包含头文件

#include <fstream>

2.创建对象

ofstream ofs

3.打开文件

ofs.open("path","打开方式")

4.写数据

 ofs<<"写入数据"

5.关闭数据

ofs.close()

#include <iostream>
#include <fstream>
using namespace std;
void test65() {ofstream ofs;ofs.open("/Users/king/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out);ofs << "12345677" << endl;ofs.close();}
int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";test65();std::cout << "end!\n";return 0;
}

文件操作必须包含fstream

读文件可以利用ofstream  或者fstream类

打开文件时候需要指定操作文件的路径 以及打开方式

利用<<可与你向文件中写数据

操作完毕需要关闭文件

读文件

1.包含头文件

#include <fstream>

2.创建对象

ofstream ifs

3.打开文件

ifs.open("path","打开方式")

4.读数据

四种读取方式

5.关闭文件

ifs.close();

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void test65() {ofstream ofs;ofs.open("/Users/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out);ofs << "12345677" << endl;ofs.close();}
void test66() {ifstream ifs;ifs.open("/Users/cpp/cpplearn/cpplearn/test.txt",ios::in);if (!ifs.is_open()) {cout << "文件打开失败" << endl;return;}char buf[1024] = {0};// 方式1
//    while (ifs >> buf) {
//        cout << buf << endl;
//    }//2.
//    while (ifs.getline(buf, sizeof(buf))) {
//        cout << buf << endl;
//    }//3.
//    string buffer;
//    while (getline(ifs, buffer)) {
//        cout << buffer << endl;
//    }//4. 效率低下char c;while ( (c = ifs.get()) != EOF ) {cout << c << endl;}ifs.close();}
int main(int argc, const char * argv[]) {// insert code here...std::cout << "Hello, World!\n";test65();test66();std::cout << "end!\n";return 0;
}

二进制读写

void test67() {ofstream ofs;ofs.open("/Users/xxx/Documents/cpp/cpplearn/cpplearn/test.txt",ios::out | ios::binary);Student1 s = {"王武",18};ofs.write((const char*)&s, sizeof(Student1));ofs.close();
}

void test69() {ifstream ifs;ifs.open("/Users/xxx/Documents/cpp/cpplearn/cpplearn/test.txt",ios::in | ios::binary);if (!ifs.is_open()) {std::cout << "is_open, failed!\n";return;}Student1 s;ifs.read((char *)&s, sizeof(Student1));cout << "name=" << s.m_name << "age = " << s.m_age << endl;ifs.close();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/453636.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 小技巧:利用 xtrabackup 完全备份,增量备份及还原

案例&#xff1a;利用 xtrabackup 8.0 完全备份,增量备份及还原 MySQL8.0 在面对海量数据时&#xff0c;我们无法做到每天全量备份&#xff0c;因此 只能每周做一次全量备份。 而每天的话则进行增量备份&#xff0c;确保数据安全。 注意点&#xff1a;MySQL 8.0.26 版本对应需要…

三层交换组网实验(华为)

思科设备参考&#xff1a;三层交换组网实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 三层交换技术的出现&#xff0c;解决子网必须依赖路由器进行管理的问题&#xff0c;解决传统路由器低速、复杂所造成的网络瓶颈问题。一个具有三层交换功能的设备可简单理解为…

1-3 动手学深度学习v2-线性回归的从零开始实现-笔记

手动创建训练数据集 根据带有噪声的线性模型构造一个人造数据集。我们使用线性模型参数 w [ 2 , − 3.4 ] T \pmb{w} [2,-3.4]^{T} w[2,−3.4]T、 b 4.2 b 4.2 b4.2和噪声项 ϵ \epsilon ϵ生成数据集及其标签&#xff1a; y X w b ϵ \pmb{y} \pmb{Xw}b\epsilon yXw…

一起玩儿Proteus仿真(C51)——03. 直流电机的启停、加减速和正反转仿真(L298)(一)

摘要&#xff1a;本文介绍直流电机的驱动原理图和PWM信号的输出方法 今天来用Proteus和C51做一个直流电机驱动程序的仿真实验。在这个实验中&#xff0c;通过按键可以控制电动机的启动、停止、加速、减速、正转和反转。在这里&#xff0c;主要使用到的器件除了C51最小系统之外&…

机器学习超参数优化算法(贝叶斯优化)

文章目录 贝叶斯优化算法原理贝叶斯优化的实现&#xff08;三种方法均有代码实现&#xff09;基于Bayes_opt实现GP优化基于HyperOpt实现TPE优化基于Optuna实现多种贝叶斯优化 贝叶斯优化算法原理 在贝叶斯优化的数学过程当中&#xff0c;我们主要执行以下几个步骤&#xff1a; …

【2024最新ChatGPT干货总结 升级GPT-4.0教程】含实用prompt技巧

2024最新ChatGPT干货总结 & 升级GPT-4.0教程&#xff01;含实用prompt技巧 前言GPT-4.0 与 3.5的差距&#xff1f;一些实例展示个人感受 一些实用的prompts用法&#xff1f;prompt5步法&#xff0c;分为下面5个步骤&#xff1a;关于5步法的说明小结 如何快速升级地表最强GP…

Go语言Gin框架安全加固:全面解析SQL注入、XSS与CSRF的解决方案

前言 在使用 Gin 框架处理前端请求数据时&#xff0c;必须关注安全性问题&#xff0c;以防范常见的攻击。本文将探讨 Gin 框架中常见的安全问题&#xff0c;并提供相应的处理方法&#xff0c;以确保应用程序的稳健性和安全性。 处理前端请求数据时&#xff0c;确保应用程序的…

指针的深入理解(四)

这节主要讨论sizeof和strlen的区别&#xff0c;以及一些理解题。 sizeof 求的是对象的大小&#xff0c;深入理解一点就是&#xff1a;这个对象&#xff0c;他一定有一块对应的内存空间。求的就是这一块内存空间。 strlen 只能用来求字符串&#xff0c; 求取的是字符串的长度。…

使用C#读取PDF中所有文本内容

先安装如下包 using iTextSharp.text.pdf; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text;namespace ReadPdfText {class Program{static void Main(string[] args){string path "0017_审判流程管理信息表2…

c#string方法对比

字符串的截取匹配操作在开发中非常常见&#xff0c;比如下面这个示例&#xff1a;我要匹配查找出来字符串数组中以“abc”开头的字符串并打印&#xff0c;我下面分别用了两种方式实现&#xff0c;代码如下&#xff1a; using System; namespace ConsoleApp23{ class Progra…

HCIA--DHCP动态分配ip地址实验

要求&#xff1a; 1. pc1&#xff0c;pc2不能获取 250-254的地址 2. pc3固定获取172.16.1.3/24 pc4固定获取172.16.1.6/24 1. 在AR1上配接口ip、划分网段&#xff0c;创建地址池&#xff0c;开启dhcp: [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 2…

Vue2的双向数据绑定原理是什么

Vue2的双向数据绑定原理是什么 作为一名前端开发者&#xff0c;在日常的开发过程中&#xff0c;我们经常会用到Vue.js这个流行的前端框架。Vue.js以其简洁易用的语法和强大的性能优化功能&#xff0c;成为许多开发者的首选。而Vue.js最核心的特性之一就是双向数据绑定。那么&a…