一、創建文件
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
微信掃一掃
支付寶掃一掃