Любимая А..гм, Stranger. Отвечаю на ваши вопросы. В С++ файл открывается посредством его связывания с потоком Имеется три типа потоков: ввода, вывода, ввода/вывода. Перед открытием потока его нужно создать. Для создания потока ввода нужно объявить объект типа ifstream. Для создания потока вывода ofstream. Потоки реализующие одновременно ввод и вывод имеют тип fstream.
Примеры объявлений
Code
ifstream in; //Ввод
ofstream out; // Вывод
fstream io; //Ввод и вывод
После создания потока, одним из способов связать его с файлом является функция open(); Эта функция является членом всех трех классов.
Прототипы функции:
Code
void ifstream::open(const char *file_name, openmode mode = ios::in);
void ofstream::open(const char *file_name, openmode mode = ios::out | ios::trunc);
void fstream::open(const char *file_name, openmode mode = ios::in | ios::out);
*file_name - имя файла, в которое может входить спецификатор пути до файла.
openmode - режим открытия файла. Может быть вида:
ios::app - открывает файл в режиме добавления в конец файла.
ios::ate - задает режим поиска конца файла при его открытии.
ios::binary - открывает файл в двоичном режиме. По умолчанию все файлы открываются в двоичном режиме.
ios::in - ясно из названия.
ios::out - ясно из навания.
ios::trunc - удаляет содержимое файла. По сути перезаписывает содержимое.
Пример простейшего открытия файла.
Code
ofstream mystream;
mystream.open("test");
Если выполнение функции open() завершилось ошибкой, то в булевом выражении поток будет равен false.
Пример.
Code
if(!mystream)
{
cout << "Файл открыть невозможно\n";
}
ВАЖНО! После работы с файлом необходимо его закрыть!
Делается вызовом метода close();
Пример.
После того, как файл открыт, очень легко читать данные, ну или записывать в него текстовые данные. Просто используй операторы << и >>.
Пример.
В программе создается файл для вывода, туда записывается информация, и файл закрывается. Затем снова открывается файл и данные читаются.
Code
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fout("test"); // Создание файла для вывода
if(!fout)
{
cout << "Файл открыть невозможно\n";
return 1;
}
fout << "Привет!\n";
fout << 100 << ' ' << hex << 100 << endl;
fout.close();
ifstream fin("test"); //Открытие файла на чтение
if(!fin)
{
cout << "Файл открыть невозможно\n";
return 1;
{
char str[80];
int i;
fin >> str >> i;
cout << str << ' ' << i << endl;
fin.close();
return 0;
}
Не форматируемый двоичный ввод/вывод надо?
Про cout и cin не совсем понял =)
cout << Выводим в консоль;
cin >> Читаем_сюда;