C++ чтение и запись данных в файл

У компьютера всегда есть оправдание; у программиста — никогда.
Марк Дэвисон.

Здесь вы можете скачать парочку интересных андроид приложений

Работа с файлами

Для того чтобы при проверке написанной программы не вводить каждый раз какой нибудь вектор, или здоровенную матрицу, следует сначала создать файл и записать в него все данные. Создается он очень просто с помощью редактора Блокнот и сохраняется в любом месте либо в формате .txt, либо .cpp. В самой программе нужно написать функцию для чтения вектора/матрицы из файла. Затем после запуска программы мы просто вводим полный путь к нашему файлу. Также можно написать функцию для записи результатов вычислений в файл.

Рассмотрим как это реализуется.

В языке C++ потоки, которые позволяют читать и записывать информацию из/в файл(а), относятся к особому виду переменных и называются объектами. Они находятся в библиотеке с заголовочным файлом <fstream>. Поэтому в начале программы подключаем эту библиотеку.

Поток чтения из файла имеет тип ifstream, а поток записи в файл ofstream.

Короче, рассмотрим чтение и запись в файл на примере.

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstddef>
#include <cmath>
using namespace std;
//Прототип функции для чтения числа из файла:
double inputf(ifstream &f,char s[40]);
//Прототип функции для записи числа в файл:
void outputf(ofstream &f,double a, char s[40]);
void main()
{setlocale(LC_ALL,"Russian");//Русификация
double a,b;//Объявляем переменные
ifstream f;//Объявляем поток чтения из файла
ofstream f1;//Объявляем поток записи в файл
char str[40];//Строковая переменная (для пути к файлу)
cout<<"\n Ввести имя файла для чтения числа A: \n";
cin>>str;
a=inputf(f,str);//Обращаемся к функции чтения числа из файла
cout<<"\n Прочитанное из файла число A="<<a;
b=pow(a,2);//Возводим в квадрат число A
cout<<"\n b="<<b;
cout<<"\n Ввести имя файла для записи числа A: \n";
cin>>str;
outputf(f1,b,str);//Обращаемся к функции записи числа в файл
cout<<endl;
}
double inputf(ifstream &f,char s[40])//Функция для чтения числа из файла
{double a;
 f.open (s);//Открываем файл
 //Проверка успешности открытия файла:
  if (f.fail()) {cout<<"\n Ошибка открытия файла";
	             exit(1);
                }
 f>>a;//Читаем переменную из файла
 f.close();//Закрываем файл
 return a;
}
void outputf(ofstream &f,double a, char s[40])//Функция для записи
                                               //числа в файл
{f.open(s);//Открываем файл
 //Проверка успешности открытия файла:
   if (f.fail()) {cout<<"\n Ошибка открытия файла";
	              exit(1);
                 }
    f<<a;//записываем переменную в файл
 f.close();//Закрываем файл
}

Эта простая программа, читает из файла число и возводит его в квадрат. Затем происходит запись результата вычислений в файл.

И что же мы видим в результате:

Также можно написать функции для чтения и записи из/в файл(а) для векторов и для матриц.

На главную
C++ новичку     Алфавит и лексемы     Операции в C++     Библиотеки     Потоки ввода- вывода     Разветвляющийся вычислительный процесс
     Циклы    Указатели     Основы работы с динамической памятью     Работа с файлами     Некоторые типичные функции

Разработчик сайта: Филатов Максим

Hosted by uCoz