一、創建文件
C++中可以使用fstream庫來創建文件。該庫中提供了兩個類,fstream和ofstream,分別用於讀寫文件和寫文件。fstream和ofstream都定義了open()函數,用來打開文件。如果文件不存在,則open函數會自動創建一個文件。
#include <iostream> #include <fstream> using namespace std; int main() { ofstream file("example.txt"); file.close(); return 0; }
該示例中,使用ofstream類創建了一個名為example.txt的文件並關閉了文件。
二、寫入文件
使用ofstream類的<<運算符可以將數據寫入文件。例如:
#include <iostream> #include <fstream> using namespace std; int main() { ofstream file("example.txt"); file << "Hello World!"; file.close(); return 0; }
該示例中,將Hello World!寫入了example.txt文件中。
三、讀取文件
使用ifstream類可以讀取文件中的數據。例如:
#include <iostream> #include <fstream> using namespace std; int main() { ifstream file("example.txt"); string content; getline(file, content); cout << content << endl; file.close(); return 0; }
該示例中,使用ifstream類讀取了example.txt文件中的數據,並輸出到控制台中。
四、數據存儲和管理
通過將數據存儲到文件中,可以實現數據的持久性存儲和管理。常見的存儲格式包括文本格式和二進位格式。
對於文本格式,C++可以通過輸出流將數據以文本方式寫入到文件中,通過輸入流可以從文件中讀取數據。例如:
#include <iostream> #include <fstream> using namespace std; struct Person { string name; int age; }; int main() { ofstream file("people.txt"); Person p1 = {"John", 25}; Person p2 = {"Mary", 30}; file << p1.name << " " << p1.age << endl; file << p2.name << " " << p2.age <> name >> age) { cout << "Name: " << name << ", Age: " << age << endl; } readFile.close(); return 0; }
該示例中,將兩個人的姓名和年齡以文本形式寫入到文件中,並通過輸入流將文件中的數據讀取出來進行展示。
對於二進位格式,C++同樣可以進行讀寫。例如:
#include <iostream> #include <fstream> using namespace std; struct Person { string name; int age; }; int main() { ofstream file("people.bin", ios::out | ios::binary); Person p1 = {"John", 25}; Person p2 = {"Mary", 30}; file.write((char*)&p1, sizeof(Person)); file.write((char*)&p2, sizeof(Person)); file.close(); Person pRead; ifstream readFile("people.bin", ios::in | ios::binary); while (readFile.read((char*)&pRead, sizeof(Person))) { cout << "Name: " << pRead.name << ", Age: " << pRead.age << endl; } readFile.close(); return 0; }
該示例中,使用二進位方式將兩個人的姓名和年齡寫入到文件中,並通過讀取二進位文件將數據讀取出來進行展示。
總結
C++提供了豐富的文件讀寫介面,可以靈活地進行文件的創建、數據的讀寫和管理。通過將數據存儲到文件中,可以實現數據的持久性存儲和管理,同時也方便後續的讀取和處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/312832.html