Сохранение и чтение данных из файла

Запись файла

#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <iterator>
// ---------------
#include <fstream>

using namespace std;
//*********************************************
int main()
{
    //    srand(static_cast<unsigned int>(time(0)));
    std::cout << "Hello World!\n" << endl;
    const int yMax = 100;
    const int xMax = 10;
    vector<int> arVal;
    //заполняем массив случайными значениями
    for (int i = 0, t; i < yMax; ++i) {
        t = rand();
        arVal.push_back(t);
    }
    //записываем в файл
    int j = 0;
    ofstream outFile("tabl.txt");
    if (outFile)
        for (int& it : arVal) {
            outFile.width(6);
            outFile << it;
            if (++j == xMax) {
                outFile << endl;
                j = 0;
            }

        }
    else cout << "Error opening file" << endl;
}

Чтение файла

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<int> arInt;
    int j = 0;
    int xMax = 10;
    int Val;

    ifstream inpFile("tabl.txt");

    if (!inpFile)
        cout << "File not found." << endl;

    while (inpFile) {
      if(inpFile.eof())break;
      inpFile >> Val;
      arInt.push_back(Val);
    }

    for (int& it : arInt) {
        cout.width(6);
        cout << it;
        if (++j == xMax) {
            cout << endl;
            j = 0;
        }
    }

}

Класс записи файла: ofstream

app — открывает файл в режиме добавления;
ate — переходит в конец файла перед чтением/записью;
binary — открывает файл в бинарном режиме (вместо текстового режима);
in — открывает файл в режиме чтения (по умолчанию для ifstream);
out — открывает файл в режиме записи (по умолчанию для ofstream);
trunc — удаляет содержимое файла при открытии .

Класс чтения файла: ifstream

basic_ifstream( const char* filename, ios_base::openmode mode = ios_base::in );

std::fstream f1(“test.bin”, std::ios::binary);

Форматированный ввод
operator>> извлекает форматированные данные из потока ввода std::basic_istream
Неформатированная вход
get извлекает символы
peek читает следующий символ без его извлечения
unget помещает символ назад
putback ставит символ во входной поток
getline извлекает символы, пока не будет найден заданный символ
ignore извлекает и отбрасывает символы, пока заданный символ не будет найден
read извлекает блоки символов
readsome извлекает уже имеющихся блоков символов
gcount возвращает число символов, извлеченных при последней операции неформатированного ввода