Класс fstream - это объект, который обрабатывает ввод и вывод файла. Он в основном эквивалентен как объектам ifstream и ostream в одном, так как вы можете использовать его как для ввода, так и для вывода. Эта крошечная демонстрация создаст файл и запишет в него данные.
#include <fstream>
using namespace std;
int main()
{
fstream myFile;
myFile.open("data.txt");
myFile << "This will appear in the file.";
myFile.close();
}
Что хорошо в объектах fstream, так это то, что вы можете использовать их для чтения и записи изображений двоичной памяти в файлы (чтобы защитить данные вашего файла от редактирования) и устанавливать различные флаги для управления способом обработки ввода и вывода в fstream. Например:
Этот поток является выходным потоком, который очищает данные fout.txt и записывает в двоичном формате.
fstream foutOne("fout.txt", ios::binary | ios::out | ios::trunc)
Этот fstream является выходным потоком, который не очищает данные fout.txt, а добавляет их в конец и записывает в двоичном виде.
fstream foutTwo("fout.txt", ios::binary | ios::out | ios::app)
Если я правильно помню, foutTwo потерпит крах, если fout.txt не существует, а foutOne - нет. Вы можете (и должны ВСЕГДА) проверять, правильно ли загружен fstream сразу после открытия файла, например:
if(!foutTwo)
{ cout << "File open error!\n"; exit(EXIT_FAILURE); }