之前的博客里,已經說過如何從鍵盤讀入(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; }
運行結果: