爱上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


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

目录
相关文章
|
6月前
|
安全 算法 程序员
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
210 0
|
6月前
|
存储 人工智能 算法
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
128 0
|
6月前
|
存储 C++ iOS开发
C++文件操作
C++文件操作
|
6月前
|
C++ iOS开发
C++ 文件操作的技术性文章
C++ 文件操作的技术性文章
32 0
|
3月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
3月前
|
存储 算法 C++
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
|
5月前
|
存储 C++
C++文件操作
C++文件操作
|
6月前
|
存储 C语言 数据安全/隐私保护
C++中的文件操作技术详解
C++中的文件操作技术详解
|
6月前
|
C++
C++语言学习文件操作应用案例
C++文件操作示例:创建`ofstream`对象写入&quot;Hello, World!&quot;到`output.txt`,刷新缓冲区,然后使用`ifstream`读取并打印文件内容。如果文件打开失败,程序将显示错误信息并返回1。
36 3
下一篇
无影云桌面