一、創建和打開文件
使用C++中的ofstream類來創建和打開文件,可以使用構造函數來實現,構造函數的參數指定了文件名和打開模式。文件名可以是相對路徑或絕對路徑。打開模式指定了文件是以什麼方式打開的,有多種模式可選:
#include <fstream>
using namespace std;
int main () {
ofstream outfile;
outfile.open("example.txt"); // 默認以寫入模式打開
outfile << "Hello World!" << endl;
outfile.close();
return 0;
}
以上代碼創建了一個名為example.txt的文件,並且以寫入模式打開。在文件中寫入了一行字元串”Hello World!”,之後關閉了文件。
二、寫入數據
在打開文件後,可以使用ofstream類的<<運算符來寫入數據。當使用<<運算符將數據寫入到文件時,會自動轉換為字元串類型。可以按照以下示例將不同類型的數據寫入文件:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream outfile;
outfile.open("example.txt");
outfile << "Writing multiple types of data to a file." << endl;
outfile << 123 << endl;
outfile << 3.14 << endl;
outfile << true << endl;
outfile.close();
return 0;
}
以上代碼創建了一個名為example.txt的文件,並且以寫入模式打開。在文件中寫入了一行字元串,之後寫入了整型數據123、浮點型數據3.14和布爾型數據true。之後關閉了文件。
三、關閉文件
當完成文件操作後,使用ofstream類的close()函數來關閉文件。這將釋放與文件關聯的系統資源並刷新緩衝區,確保寫入數據已經存入文件內,而不是僅保留在內存中:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream outfile ("example.txt");
if (outfile.is_open())
{
outfile << "This is a line." << endl;
outfile << "This is another line." << endl;
outfile.close();
}
else cout << "Unable to open file";
return 0;
}
以上代碼創建了一個名為example.txt的文件,並且以寫入模式打開。在文件中寫入了兩行字元串,之後關閉了文件。注意,可以使用is_open()函數檢查是否成功打開文件。
四、其他函數
ofstream類還提供了一些其他的函數來完成其他的操作,如判斷文件是否成功打開、獲取當前寫入位置、獲取文件大小等。
例如,下面的代碼演示了如何使用tellp()獲取當前的寫入位置。 tellp()返回當前指針的位置,指針指向要寫入下一個字元的位置。 在這個例子中,我們使用seekp()函數將指針重新設置到文件的開頭,並使用write()函數寫入一些數據。
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream outfile ("example.bin", ios::out | ios::binary);
if (outfile.is_open())
{
char data[100] = "1234567890";
outfile.write(data, 10);
streampos pos = outfile.tellp();
outfile.seekp(pos - 5);
outfile.write("&",&1);
outfile.close();
}
else cout << "Unable to open file";
return 0;
}
以上代碼創建了一個名為example.bin的二進位文件,並且以寫入模式打開。在文件中寫入了10個字元,然後使用tellp()函數獲取當前的指針位置,並使用seekp()函數將指針重置到文件的開頭,再使用write()函數寫入一個單一字元。最後關閉了文件。
五、總結
以上便是關於C++中ofstream文件輸出流的用法和功能的詳細介紹。通過對於文件的創建、寫入數據和關閉文件的操作,可以非常便利地對文件進行管理和操作。同時,ofstream類還提供了其他的許多函數和功能,可以靈活應用到不同的場景中。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159023.html