之前的博客里,已经说过如何从键盘读入(cin),以及如何输出到控制台(cout)。但是仅仅是这样的输入和输出方式并不能满足需求。更多的时候我们需要读写文件来获得、存储我们的数据。
概述
不管是读文件还是写文件,大体都可以分为5个步骤:
1. 头文件<fstream>
2. 创建流
3. 打开文件,使文件和流建立联系
4. 读写操作
5. 关闭文件
解释一下什么是流。
流,是一种抽象的概念。我们都知道,计算机的数据都是由0和1构成,不管是字符串,图片还是音频。当我们要将这些文件进行操作的时候,实际上操作的是这些0和1的数据。假如我想把一个文件从C盘剪切到D盘,那么我可以做一个这样的类比:把文件的数据比作水。既然我想从一个地方把这些水运输到另一个地方,那么我还要有一个管道,这个管道连接两地(即C盘和D盘),水(0和1的数据流)在里面有方向地流动,最终全部抵达另一个地方。
参考博客:https://www.cnblogs.com/shitouer/archive/2012/12/19/2823641.html
写文件
#include <iostream> //1. 头文件<fstream> #include <fstream> using namespace std; int main() { //2. 创建流 ofstream output; //3. 打开文件,将流与文件相关联,这里使用相对路径 output.open("number.txt"); //4. 向文件写入数据 output << 1 << " " << 2 << " " << 3 << endl; //5. 关闭流 output.close(); return 0; }
运行结果如下:
读文件
#include <iostream> //1. 头文件<fstream> #include <fstream> using namespace std; int main() { //2. 创建流 ifstream input; //3. 打开文件,将流与文件相关联 //2, 3步可以直接合并为:ifstream input("number.txt"); input.open("number.txt"); //4. 从文件读入数据 int number1, number2, number3; input >> number1 >> number2 >> number3; cout << "number1: " << number1 << endl; cout << "number2: " << number1 << endl; cout << "number3: " << number1 << endl; //5. 关闭流 input.close(); return 0; }
运行结果: