C ++ переменная потока - PullRequest
0 голосов
/ 07 мая 2010

пожалуйста, что содержит переменную fstream? A может найти много обучающих программ по fstream, но ни одна из них не говорит, что такое файл fstream; декларация в начале. Спасибо.

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Класс 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); }
2 голосов
/ 07 мая 2010

Объект fstream используется для открытия файла для ввода (т.е. чтения содержимого файла) и вывода (т.е. записи в файл).

Существуют также объекты ifstream и ofstream, которые разделяют вход и выход на два разных объекта.Это полезно, например, если вы хотите прочитать неформатированный файл и записать форматированный вывод в другой файл.

0 голосов
/ 07 мая 2010

std :: fstream - это класс, который инкапсулирует доступ для чтения / записи к файлу.Он наследуется от iostream, поэтому он использует все обычные методы, предоставляемые всеми потоками C ++ для чтения и записи в файл.Для получения дополнительной информации см. его документацию и главу о IO вашего руководства по C ++.

...