目录
学过我之前c语言课程的都应该学过文件了,或者说有过编程基础的人都应该学过文件的相关知识了。所以说这一章节对大家来说可能不会太难,但是还是要会不是。哈哈哈,开始我们下面的学习。
首先,一个关键的点,在c++中任何文件的操作都要包含头文件,这是与C语言所不同的。
文件操作的头文件是<fstream>
1,写操作:ofstream
2,读操作:ifstream
3,读写操作:fstream
1.包含头文件
#include<fstream>
2.创建流对象
ifstream ifs;
3.确认打开方式
ifs.open("文件路径",打开方式);
4.操作
ifs<<数据;
5.关闭文件
ifs.close();
***注意:文件打开方式可以配合使用 配合 | 运算符使用
#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;
}
#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()函数用来判断其是否成功打开。
#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希望大家能学到一些东西。加油!!!