一、文件流介紹
C++文件流提供了一種方便的機制來讀寫文件,並且支持二進位和文本格式的文件。流是一種抽象的數據類型,用於表示在程序和外部設備之間的數據流。C++ 文件流庫定義了幾個流類,其中最常見的有 ifstream 用於從文件中讀取數據,ofstream 用於向文件中寫入數據以及 fstream 用於讀寫文件。
二、打開和關閉文件
在開始讀寫文件之前,我們需要通過一個文件流對象打開一個文件。為了打開一個文件,我們需要指定文件名以及文件打開模式。文件打開模式可以是輸入模式(ifstream),輸出模式(ofstream)或者讀寫模式(fstream)
下面是打開一個文件的基本語法:
ifstream inFile;
inFile.open("file.txt");
if (!inFile) {
cerr << "Unable to open file.txt";
exit(1); // call system to stop
}
// ...
inFile.close();
file.txt是我們要打開的文件,而inFile是一個ifstream對象。代碼中第一行創建了這個文件流對象,而第二行使用open()函數來打開文件。如果打開文件失敗,我們可以通過列印錯誤信息來退出程序。
在使用完文件後,我們需要將其關閉,以釋放文件資源並使其可供另一個程序使用。可以使用 close() 函數來關閉文件,例如上面的代碼的最後一行。
三、從文件中讀取數據
當我們成功打開一個文件,我們就可以從中讀取數據了。下面是從文件中讀取整個文件並將其輸出到控制台的簡單代碼:
ifstream inFile;
inFile.open("file.txt");
if (!inFile) {
cerr << "Unable to open file.txt";
exit(1); // call system to stop
}
string line;
while (getline(inFile, line)) {
cout << line << endl;
}
inFile.close();
上面的代碼創建了一個 string 變數 line 來存儲文件中的每個行,然後使用 while 循環逐行讀取文件內容。其中 getline() 函數用於從文件中讀取一行數據,當到達文件結尾時返回 false。最後我們需要使用 inFile.close() 函數來關閉文件。
四、向文件中寫入數據
在打開文件後,可以使用 ofstream 對象向其中寫入數據。下面是一個向文件中寫入內容的示例:
ofstream outFile;
outFile.open("file.txt");
if (!outFile) {
cerr << "Unable to open file.txt";
exit(1); // call system to stop
}
outFile << "This is a line of text.\n";
outFile << "This is another line of text.\n";
outFile.close();
上面的代碼中,我們創建一個 ofstream 對象 outFile,並使用 open() 函數來打開文件。如果文件打開失敗,我們使用 stderr 輸出錯誤消息,並使用 exit(1) 退出程序。最後我們向文件中寫入兩行文本內容,並使用 outFile.close() 函數來關閉文件。
五、二進位文件處理
C++文件流還支持二進位文件的讀寫。二進位文件在處理時不會將文件內容解釋為文本,而是直接處理文件數據。下面是一個使用二進位模式打開文件的示例代碼:
fstream file;
// Open file using binary mode
file.open("data.dat", ios::out | ios::binary);
if (!file) {
cerr << "Unable to open file data.dat";
exit(1); // call system to stop
}
// Write data to file
file.write((char*)&value, sizeof(value));
// Read data from file
file.read((char*)&value, sizeof(value));
file.close();
上面的代碼打開了一個名為 data.dat 的二進位文件,並使用 write() 函數將數據寫入文件。數據內容被轉換為字元指針類型,並指定了數據大小。最後我們使用 read() 函數從文件中讀取數據。這裡需要注意,我們最好在使用 write() 函數時將數據內容轉換為字元指針類型,並指定數據大小,以確保數據按照正確的格式寫入文件中。
總結
以上就是使用C++文件流讀寫文件的相關介紹,包括打開和關閉文件,從文件中讀取數據,向文件中寫入數據以及處理二進位文件等方面。使用文件流可以方便地讀寫文件,在實際開發中將會有很多應用場景。
原創文章,作者:JUEW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131685.html