爱上c++的第七天(核心课程):文件操作

简介: 学过我之前c语言课程的都应该学过文件了,或者说有过编程基础的人都应该学过文件的相关知识了。所以说这一章节对大家来说可能不会太难,但是还是要会不是。哈哈哈,开始我们下面的学习。

你的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();


四,文件打开方式


f06ec3921e754632960ad1e4a1139daf.png


***注意:文件打开方式可以配合使用   配合 | 运算符使用


五,实例


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


希望大家能学到一些东西。加油!!!

目录
相关文章
|
2月前
|
安全 算法 程序员
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
48 0
|
2月前
|
存储 人工智能 算法
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
91 0
|
3月前
|
存储 C++ iOS开发
C++文件操作
C++文件操作
|
4月前
|
移动开发 Linux 程序员
c++文件操作,超详细
c++文件操作,超详细
49 0
|
7天前
|
C++
深入理解 C++ 中的多态与文件操作
C++中的多态是OOP核心概念,通过继承和虚函数实现。虚函数允许对象在相同操作下表现不同行为,提高代码可重用性、灵活性和可维护性。例如,基类`Animal`声明`makeSound()`虚函数,派生类如`Cat`、`Dog`和`Bird`可重写该函数实现各自叫声。C++也提供多种文件操作,如`fstream`库的`ofstream`、`ifstream`用于读写文件,C++17引入的`&lt;filesystem&gt;`库提供更现代的文件操作接口。
17 0
|
12天前
|
存储 C++
C++从入门到精通:2.3.1文件操作
C++从入门到精通:2.3.1文件操作
|
28天前
|
存储 C++ iOS开发
C++文件操作(文本文件的读写+二进制文件的读写)
C++文件操作(文本文件的读写+二进制文件的读写)
|
29天前
|
C++
C++语言学习文件操作应用案例
C++文件操作示例:创建`ofstream`对象写入&quot;Hello, World!&quot;到`output.txt`,刷新缓冲区,然后使用`ifstream`读取并打印文件内容。如果文件打开失败,程序将显示错误信息并返回1。
11 3
|
2月前
|
存储 编译器 程序员
【C++ 文件操作与字符串处理】从文件读取到内容分割的全方位指南
【C++ 文件操作与字符串处理】从文件读取到内容分割的全方位指南
100 6
|
2月前
|
C++
C++零基础入门学习视频课程
本专题主要讲解C++基础入门学习,所以不会涉及很深入的语法和机制。但会让你整体多面的了解和学习C++的核心内容,快速学习使用C++,我们的目标是先宏观整体把握,在深入各个击破!
17 1