你的c++学习路上明灯
学过我之前c语言课程的都应该学过文件了,或者说有过编程基础的人都应该学过文件的相关知识了。所以说这一章节对大家来说可能不会太难,但是还是要会不是。哈哈哈,开始我们下面的学习。
一,
首先,一个关键的点,在c++中任何文件的操作都要包含头文件,这是与C语言所不同的。
文件操作的头文件是<fstream>
二,文件操作的三大操作
1,写操作:ofstream
2,读操作:ifstream
3,读写操作:fstream
三,文件操作的五大步骤
1.包含头文件
#include<fstream>
2.创建流对象
ifstream ifs;
3.确认打开方式
ifs.open("文件路径",打开方式);
4.操作
ifs<<数据;
5.关闭文件
ifs.close();
四,文件打开方式
***注意:文件打开方式可以配合使用 配合 | 运算符使用
五,实例
1.写文件
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; #include<fstream> void test1() { //1.包含头文件 //2.创建流对象 ofstream ofs; //3.确定打开方式 ofs.open("test.txt", ios::out); //4.写内容 ofs << "hello world" << endl; //5.关闭文件 ofs.close(); } int main() { test1(); return 0; }
2.读文件
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; #include<fstream> #include<string> void test1() { //1.包含头文件 //2.创建流对象 ifstream ifs; //3.确定打开方式 ifs.open("test.txt", ios::in); //编译器提供的判断文件是否正常打开的函数,返回值是布尔类型 if (!ifs.is_open()) { cout << "文件打开失败" << endl; return; } //4.读内容 //四种方法 //第一种 /*char buf[1024] = { 0 }; while (ifs >> buf) { cout << buf << endl; }*/ //第二种 /*char buf[1024] = { 0 }; while (ifs.getline(buf, sizeof(buf))) { cout << buf << endl; }*/ //第三种 /*string buf; while (getline(ifs, buf)) { cout << buf << endl; }*/ //第四种 /*char c; while ((c = ifs.get()) != EOF) { cout << c ; }*/ //5.关闭文件 ifs.close(); } int main() { test1(); return 0; }
根据上面的两个例子,我有话要说,认真看过这上面两个例子的同学会发现,在确认打开方式这一步两个例子有一些不同之处,读文件时要对其进行判断,判断其是否成功打开,而写文件却不需要这样。
并且,编译器还提供了一个检测函数is_open()函数用来判断其是否成功打开。
3,写二进制文件
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; #include<fstream> class Person { public: char m_Name[64]; int m_Age; }; void test1() { ofstream ofs; ofs.open("Person.txt", ios::out | ios::binary); Person p = { "张三",18 }; ofs.write((const char*)&p, sizeof(Person)); ofs.close(); } int main() { test1(); return 0; }
其他一些关于文件操作的细节可以看看我之前写的一篇博客。
深究C语言6.文件操作_喜欢吃豆的博客-CSDN博客
https://blog.csdn.net/m0_63309778/article/details/122097609
希望大家能学到一些东西。加油!!!