在C 中,文字檔案的處理是非常重要的,因為大部分程式都需要和外部檔案進行輸入輸出,例如讀取儲存在磁碟上的資料檔案或將程式內部的資料儲存到文件中。因此,本文將介紹如何在C 中使用文字檔進行輸入輸出。
一、文字檔案的開啟與關閉
在C 中,需要使用檔案流類別物件(fstream)進行檔案的讀寫操作。在使用文件之前,需要先建立文件流對象,並將其與文件關聯起來。文件流物件的建構函式可以接受檔名和開啟方式作為參數。 C 中常見的檔案開啟方式有以下三種:
下面是一個簡單的例子,示範如何開啟檔案:
#include <fstream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 文件操作 // 关闭文件 file.close(); return 0; }
在上述程式碼中,透過fstream類別的建構子建立了一個名為file的檔案流對象,並將其與檔案example.txt關聯起來。開啟檔案時,使用了一種既可讀又可寫入的方式。換句話說,當需要對文件進行讀取操作時,需要使用ios::in選項;當需要對文件進行寫入操作時,需要使用ios::out選項;當需要在文件末尾添加內容時,需要使用ios ::app選項。這裡為了方便起見,使用了既可讀又可寫的方式。
在檔案操作完成後,需要關閉檔案。這可以透過檔案流物件的close()函數來實現。
二、從檔案讀取資料
在開啟文字檔案之後,我們可以使用檔案輸入流物件(ifstream)從文字檔案讀取資料。 C 提供了多種方法來讀取檔案中的數據,包括以下幾種:
運算子:從檔案中讀取一個單字或一個數值。
下面是一個簡單的例子,示範如何從檔案中讀取資料:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ifstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 读取文件内容 string str; while (getline(file, str)) { cout << str << endl; } // 关闭文件 file.close(); return 0; }
在上述程式碼中,我們建立了一個名為file的輸入檔案流對象,並將其關聯到檔案example.txt。在while循環中,透過呼叫getline()函數逐行讀取檔案內容,並將每行資料儲存在字串變數str中。最後透過cout輸出讀取到的內容。
三、寫入資料到檔案
在C 中,使用檔案輸出流物件(ofstream)可以寫入資料到文字檔案。常用的寫入函數包括以下幾種:
下面是一個簡單的例子,示範如何寫入資料到檔案:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ofstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 向文件中写入数据 for (int i = 1; i <= 10; i++) { file << "This is line " << i << endl; } // 关闭文件 file.close(); return 0; }
在上述程式碼中,我們建立了一個名為file的輸出檔案流對象,並將其關聯到檔案example.txt。在for迴圈中,透過<<運算子向文件中寫入資料。每次循環寫入一行文字數據,最後透過close()函數關閉文件。
四、檔案指標
在進行檔案操作時,需要使用指標來指示目前檔案讀寫的位置。文件指針通常稱為文件位置指示器,它由每個文件維護一個內部變量,用於記錄從文件開始位置到當前位置的位元組數。
C 提供了以下函數來操作檔案指標:
下面是一個簡單的例子,示範如何操作檔案指標:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 获取、设置文件指针位置 file.seekp(6); // 将文件写位置设置为6 file.put('X'); // 在文件位置6处写入字符'X' file.seekg(0); // 将文件读位置设置为0 char ch = file.get(); // 从文件位置0读取一个字符 cout << "第一个字符是:" << ch << endl; // 关闭文件 file.close(); return 0; }
#在上述程式碼中,我們建立了一個名為file的檔案流對象,並將其關聯到檔案example.txt。在操作文件指標之前,需要先開啟文件。
在範例中,我們使用了seekp()函數將檔案指標位置設為6,然後使用put()函數在檔案位置6處寫入了字元'X'。接著,使用seekg()函數將檔案指針位置設為0,使用get()函數從檔案位置0讀取一個字符,並將其輸出。
五、總結
以上是使用C 進行文字檔案的輸入輸出的基本操作。在進行文件操作時,需要注意開啟和關閉文件的順序,以及文件指標位置的操作。文字檔案的讀寫操作、指標定位等操作都非常簡單,但需要牢記常用的函數和操作方式。
以上是在C++中使用文字檔進行輸入輸出的詳細內容。更多資訊請關注PHP中文網其他相關文章!