前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++ 读写文本文件和二进制文件

C++ 读写文本文件和二进制文件

作者头像
我与梦想有个约会
发布于 2023-10-20 08:53:45
发布于 2023-10-20 08:53:45
29800
代码可运行
举报
文章被收录于专栏:jiajia_dengjiajia_deng
运行总次数:0
代码可运行

在 C 中,我们通过 FILE 结构体生成的指向 FILE 结构体的指针来操作文件。其提供了诸如 fgetc、fgets、feof等等函数,在 C++ 中重新封装了操作文件的方法,其实现在 iostream 派生的 fstream 中,实际内部实现基本原理与 C 相同。下面就分别介绍下操作文本文件和二进制文件的方法。

【操作文本文件】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include 
#include 
 
using namespace std;
 
bool txt_write()
{
ofstream ofs(“abc.txt”, ios::out  ios::trunc);
if (!ofs) return false;
 
ofs << “aaaaaaaaaaaaa” << endl;
ofs << “bbbbbbbbbbbbb” << endl;
ofs << “ccccccccccccc” << endl;
 
ofs.close();
return true;
}
 
bool txt_read()
{
ifstream ifs(“abc.txt”, ios::in);
if (!ifs) return false;
 
/*
char buf[1024];
getline 方式, 读取不包含换行
while (ifs.getline(buf, 1024), !ifs.eof())
{
cout << buf << endl;
}
*/
 
// get 方式
char ch;
while (ifs.get(ch), !ifs.eof())
{
cout << ch;
}
 
ifs.close();
return true;
}
 
int main(int argc, char* argv[])
{
//txt_write();
txt_read();
return 0;
}

以上只介绍了一些简单的读写操作,更多的方法可以参考 fstream 的其他成员方法。 【操作二进制文件】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include 
#include 
#include 
 
using namespace std;
 
struct Student
{
char name[100];
int num;
int age;
char sex;
};
 
bool file_write()
{
Student s[3] = {
{“dengjia”, 1001, 18, ‘f’},
{“jiadeng”, 1002, 21, ‘m’},
{“beijing”, 1003, 22, ‘f’}
};
 
ofstream ofs(“student.data”, ios::out  ios::binary);
if (!ofs) return false;
 
for (int i = 0; i < 3; i++)
{
// 将每个结构体的首地址指针传递给write
// 它会根据你第二个参数给出的大小读取并写入数据到文本。
ofs.write((char*)&s[i], sizeof(s[i]));
}
 
ofs.close();
return true;
}
 
bool file_read()
{
Student s;
ifstream ifs(“student.data”, ios::in  ios::binary);
if (!ifs) return false;
 
while (ifs.read((char*)&s, sizeof(Student)), !ifs.eof())
{
cout << s.name << endl;
cout << s.age  << endl;
cout << s.num  << endl;
cout << s.sex  << endl;
}
 
ifs.close();
return true;
}
 
int _tmain(int argc, char* argv[])
{
// file_write();
file_read();
return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C++文件读写操作分析文本文件与二进制文件
ios::app 与 ios::ate 的区别主要在多线程写文件时有区别,ios::app:第一个线程(进程)往里面写了个d,第二个线程(进程)写了个e的话,结果是abcde
CtrlX
2022/09/23
6780
C++中文件的读写
通过文件,可以将数据持久化。C++ 中对文件的操作需要包含头文件<fstream>。 文本文件,以文本的ASCII码的形式存储在计算机中。 二进制文件,以二进制的形式存储在计算机中,用户一般无法直接阅读。 操作文本的3个类:ofstream,写操作;ifstream,读操作;fstream,读写操作。
耕耘实录
2022/05/09
8990
c++ 读写文件
本篇练习涉及到的知识点 写文本文件 4种方式读文本文件 写二进制文件 读二进制文件(例如写入自定义类的实例,和浮点数) char* p = "abc";// valid in C, invalid in C++ #include<iostream> #include<fstream> #include<string> using namespace std; class Person { public: Person(char* name,int age,char* gender) {
用户6021899
2021/07/05
1.8K0
C++读写文件
[1]C++读取txt文件 [2]C++修改/覆盖指定位置的文件内容或者从某个位置开始截断文件 [3]C++文件读写详解(ofstream,ifstream,fstream)
恋喵大鲤鱼
2018/12/07
3.3K0
c++ 文件分块
对大文件进行分块处理,这里只是简单的顺序执行 可考虑实现并发分块,通过文件指针的位置及偏移来实现 #include <iostream> #include <fstream> #include <sstream> #include <string> #define KB_4 4096 #define KB_8 8192 #define KB_16 16384 #define KB_32 32768 #define KB_64 65536L #define KB_128 131
一灰灰blog
2018/02/06
1.6K0
c++ fstream + string 处理大数据
起因 (1)之前处理文本数据时,各种清洗数据用的都是java的File,FileReader/FileWriter,BufferedReader/BufferedWriter等类,详见java读写文件 (2)应用java的原因是java里面的map非常灵活,eclipse编译器更是给力,而且ctrl可以追踪函数等,详见java map的排序 (3)应用java的另一个原因是java里面的string类的字符串处理非常灵活,各种函数是应用尽有。 (4)上面两点算是自己的误解吧,因为c++里面也有也有与之对应
CSDN技术头条
2018/02/08
2.5K0
c++ fstream + string 处理大数据
c++输入文件流ifstream用法详解
每个IO 对象都维护一组条件状态 flags (eofbit, failbit and badbit),用来指出此对象上是否可以进行 IO 操作。如果遇到错误—例如输入流遇到了文件末尾,则对象的状态变为是失效,所有的后续输入操作都不能执行,直到错误纠正。
全栈程序员站长
2022/07/02
2.1K0
c++输入文件流ifstream用法详解
【C++】输入输出流 ⑪ ( 文件流 | 二进制形式打开文件 | 二进制文件读取 | read 函数 | gcount 函数 | 二进制文件写出 | write 函数 | fail 函数 )
二进制文件中 的数据不是 字符数据 , 而是以 二进制形式 存储的 字节数据 , 有特定的格式 , 如 : PNG 头文件 , 有特定的文件头 , 数据位 , 校验位 , 使用 文本编辑器 打开都是乱码 ;
韩曙亮
2023/12/18
1.2K0
【C++】输入输出流 ⑪ ( 文件流 | 二进制形式打开文件 | 二进制文件读取 | read 函数 | gcount 函数 | 二进制文件写出 | write 函数 | fail 函数 )
C/C++读写文本文件、二进制文件「建议收藏」
1. C语言读写文件均通过FILE指针执行操作,其中文本文件的读写用fprintf,fscanf,二进制文件的读写用fread,fwrite
全栈程序员站长
2022/09/05
2.7K0
c++文件操作之文本文件-读文件
#include<iostream> #include<fstream> #include<string> using namespace std; void test() { ifstream ifs; //如若不指定路径,则在该项目同级下生成 ifs.open("test.txt", ios::in); if (!ifs.is_open()) { return; } //读文件 //第一种 char buf[1024] =
西西嘛呦
2020/08/26
9860
如何在VS中清空cin缓冲区(C++)
首先想到的就是第一次循环自动读入了一个换行符,因为在实际输入内容之前,要先输入行数然后回车。 验证的办法也很简单,把指定行数改成固定行数,去掉实际内容前的行数输入,也即是把test01()函数改成如下:
LonelyEnderman
2022/10/27
2.5K0
如何在VS中清空cin缓冲区(C++)
c++文件操作之文本文件-写文件
写文本文件步骤:包含头文件:#include<ftream>、创建流对象:ofstream ofs;、打开文件:ofs.open(文本路径,打开方式)、写数据:ofs<<数据、关闭文件:ofs.close()
西西嘛呦
2020/08/26
9670
C++文件读写
在C++中,所有的输入输出操作大部分都继承自 ios_base 基类,详细的继承体系如下图所示
范中豪
2021/05/27
1.2K0
C++中fstream_在使用中
C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream和fstream分别从类 istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件<fstream> 包括进来以使用任何fstream。如果只执行输入,使用ifstream类;如果只执行输出,使用 ofstream类;如果要对流执行输入和输出,使用fstream类。可以将文件名称用作构造函数参数。
全栈程序员站长
2022/10/02
6.6K0
C++中fstream_在使用中
C++实现机房预约系统
---- 相关视频——黑马程序员C++(282-314) ---- C++实现机房预约系统 系统要求 代码实现 globalFile.h #pragma once //管理员文件 #define ADMIN_FILE "admin.txt" //学生文件 #define STUDENT_FILE "student.txt" //教师文件 #define TEACHER_FILE "teacher.txt" //机房信息文件 #define COMPUTER_FILE "comp
半生瓜的blog
2023/05/12
1.1K0
C++实现机房预约系统
C++从入门到精通(第八篇) :IO流
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
雪芙花
2022/11/03
8380
C++从入门到精通(第八篇) :IO流
C++初阶-IO流
键盘输入的数据保存在缓冲区中,当要提取时,是从缓冲区中拿如果一次输入过多,会留在那儿慢慢用,如果输入错了,必须在回车之前修改,如果回车键按下就无法挽回了;只有把输入缓冲区中的数据取完后,才要求输入新的数据
用户9645905
2022/11/30
1.4K0
C++初阶-IO流
从零开始学C++之IO流类库(三):文件的读写、二进制文件的读写、文件随机读写
文章主要讲述了C++流和文件操作的相关内容。包括标准I/O流、自定义I/O流、文件操作、文件的随机读写以及文件指针的移动。
s1mba
2017/12/28
3.3K0
c++那些事儿7.0 I/O流,文件操作
知识点综述: ---- C++ I/O: 在iostream头文件中定义 istream //通用输入流和其它输入流基类。 ostream //通用输出流和其它流基类。 iostream //通用输入输出流和其它输入输出流基类。 在fstream头文件中定义 ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中
热心的社会主义接班人
2018/04/27
1.7K0
c++那些事儿7.0 I/O流,文件操作
8.1 C++ 标准输入输出流
C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存等底层资源,对于初学者来说可能会有一定的难度。
王 瑞
2023/10/21
3520
8.1 C++ 标准输入输出流
相关推荐
C++文件读写操作分析文本文件与二进制文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验