C ++

Как читать и записывать в файл на C ++

Как читать и записывать в файл на C ++

В этой статье мы покажем вам, как читать и записывать в файл на языке программирования C ++, используя несколько примеров. Чтобы понять файловые операции C ++, такие как чтение и запись, мы должны сначала понять концепцию потока в C++.

Что такое поток?

Поток - это просто поток данных или символов. Есть два типа потоков: входные потоки и выходные потоки. Входной поток используется для чтения данных с внешнего устройства ввода, такого как клавиатура, а выходной поток используется для записи данных на внешнее устройство вывода, такое как монитор. Файл можно рассматривать как источник ввода и вывода.

В C ++ мы используем поток для отправки или получения данных к внешнему источнику или из него.

Мы можем использовать встроенные классы для доступа к потоку ввода / вывода, i.е., «IOS».

Вот иерархия потоковых классов языка программирования C ++:

Объекты «cin» и «cout» используются для чтения данных с клавиатуры и отображения вывода на мониторе соответственно. Кроме того, ifstream, что означает «поток входного файла», используется для чтения потока данных из файла, а «ofstream», что означает «поток выходного файла», используется для записи потока данных. в файл.

Иострам.h »содержит все необходимые стандартные классы потоков ввода / вывода на языке программирования C ++.

Примеры

Теперь, когда вы понимаете основы потоков, мы обсудим следующие примеры, которые помогут вам лучше понять файловые операции в C ++:

Пример 1: открытие и закрытие файла

В этом примере программы мы продемонстрируем, как открыть / создать файл и как закрыть файл на C++. Как вы можете видеть в приведенной ниже программе, мы включили библиотеку, необходимую для файловых операций.

Чтобы открыть и закрыть файл, нам понадобится объект ofstream. Затем, чтобы прочитать или записать в файл, мы должны открыть файл. Мы включили файл заголовка fstream в строку номер 1, чтобы мы могли получить доступ к классу ofstream.

Мы объявили myFile_Handler как объект ofstream внутри основной функции. Затем мы можем использовать функцию open (), чтобы создать пустой файл, и функцию close (), чтобы закрыть файл.

#включать
используя пространство имен std;
int main ()

ofstream myFile_Handler;
// Файл открыт
myFile_Handler.open ("Файл_1.текст");
// Файл закрывается
myFile_Handler.Закрыть();
возврат 0;

Теперь мы скомпилируем программу и проверим вывод. Как вы можете видеть в окне вывода ниже, «File_1.txt »был создан после выполнения программы. Размер файла равен нулю, так как мы не записали никакого содержимого в файл.

Пример 2: Запись в файл

В предыдущем примере программы мы показали вам, как открыть файл и как закрыть файл. Теперь мы покажем вам, как что-то записать в файл.

Мы можем записать в файл с помощью оператора вставки потока, i.е., «<<”. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (“<<”) indicates that we are inserting the string into the output file stream object.

#включать
используя пространство имен std;
int main ()

ofstream myFile_Handler;
// Файл открыт
myFile_Handler.open ("Файл_1.текст");
// Записываем в файл
myFile_Handler << "This is a sample test File. " << endl;
myFile_Handler << "This is the second line of the file. " << endl;
// Файл закрывается
myFile_Handler.Закрыть();
возврат 0;

Теперь мы скомпилируем указанную выше программу и выполним ее. Как видите ниже, мы успешно записали в файл File_1.текст.

Пример 3: чтение из файла

В предыдущих примерах мы показали вам, как записывать контент в файл. Теперь давайте прочитаем содержимое из файла, который мы создали в Примере-2, и отобразим содержимое на стандартном устройстве вывода, i.е., монитор.

Мы используем функцию getline (), чтобы прочитать всю строку из файла, а затем «cout», чтобы распечатать строку на мониторе.

#включать
#включать
#включать
используя пространство имен std;
int main ()

ifstream myFile_Handler;
строка myLine;
// Файл открывается в режиме чтения
myFile_Handler.open ("Файл_1.текст");
если (myFile_Handler.открыто())

// Продолжаем читать файл
пока (getline (myFile_Handler, myLine))

// выводим строку на стандартный вывод
cout << myLine << endl;

// Файл закрывается
myFile_Handler.Закрыть();

еще

cout << "Unable to open the file!";

возврат 0;

Теперь напечатаем содержимое File_1.txt с помощью следующей команды: cat File_1.текст. После компиляции и выполнения программы становится ясно, что вывод соответствует содержимому файла. Таким образом, мы успешно прочитали файл и распечатали его содержимое на мониторе.

Пример 4: Чтение и запись в файл

До сих пор мы показали вам, как открывать, читать, писать и закрывать файл. В C ++ мы также можем читать и записывать в файл одновременно. Для чтения и записи в файл мы должны получить объект fstream и открыть файл в режиме «ios :: in» и «ios :: out».

В этом примере мы сначала записываем некоторый контент в файл. Затем мы читаем данные из файла и выводим их на монитор.

#включать
#включать
#включать
используя пространство имен std;
int main ()

fstream myFile_Handler;
строка myLine;
// Файл открыт
myFile_Handler.open ("Файл_1.txt ", ios :: in | ios :: out);
// Проверяем, открылся ли файл
если(!myFile_Handler)

cout << "File did not open!";
выход (1);

// Записываем в файл
myFile_Handler << "1. This is another sample test File. " << endl;
myFile_Handler << "2. This is the second line of the file. " << endl;
myFile_Handler.seekg (ios :: Beg);
// Читаем файл
если (myFile_Handler.открыто())

// Продолжаем читать файл
пока (getline (myFile_Handler, myLine))

// выводим строку на стандартный вывод
cout << myLine << endl;

// Файл закрывается
myFile_Handler.Закрыть();

еще

cout << "Unable to open the file!";

myFile_Handler.Закрыть();
возврат 0;

Теперь скомпилируем и запустим программу.

Пример 5: Чтение и запись в двоичный файл

В этом примере мы собираемся объявить класс, а затем записать объект в двоичный файл. Чтобы упростить этот пример, мы объявили класс Employee с общедоступной переменной emp_id. Затем мы прочитаем двоичный файл и выведем результат на монитор.

#включать
#включать
используя пространство имен std;
класс Сотрудник

общественность:
int emp_id;
;
int main ()

ofstream binOutFile_Handler;
ifstream binInFile_Handler;
Сотрудник empObj_W, empObj_R;
// Файл открыт
binOutFile_Handler.open ("Сотрудник.dat ", ios :: out | ios :: binary);
// Проверяем, открылся ли файл
если(!binOutFile_Handler)

cout << "File did not open!";
выход (1);

// Инициализируем empObj_W
empObj_W.emp_id = 1512;
// Записываем в файл
binOutFile_Handler.написать ((char *) & empObj_W, sizeof (Сотрудник));
binOutFile_Handler.Закрыть();
если(!binOutFile_Handler.хорошо())

cout << "Error occured during writing the binary file!" << endl;
выход (2);

// Теперь давайте прочитаем сотрудника.dat файл
binInFile_Handler.open ("Сотрудник.dat ", ios :: in | ios :: binary);
// Проверяем, открылся ли файл
если(!binInFile_Handler)

cout << "File did not open!";
выход (3);

// Читаем содержимое двоичного файла
binInFile_Handler.читать ((char *) & empObj_R, sizeof (Сотрудник));
binInFile_Handler.Закрыть();
если(!binInFile_Handler.хорошо())

cout << "Error occured during reading the binary file!" << endl;
выход (4);

// Распечатать вывод empObj_R
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
возврат 0;

Заключение

Файлы в основном используются для хранения данных и играют важную роль в реальном программировании. В этой статье мы показали вам, как использовать различные файловые операции с языком программирования C ++, на нескольких примерах. Кроме того, мы показали вам, как читать и записывать данные как в текстовые файлы, так и в двоичные файлы.

Установите последнюю версию игры OpenRA Strategy в Ubuntu Linux
OpenRA - это игровой движок Libre / Free Real Time Strategy, воссоздающий ранние игры Westwood, такие как классическая Command & Conquer: Red Alert. Р...
Установите последнюю версию эмулятора Dolphin для Gamecube и Wii в Linux
Эмулятор Dolphin позволяет вам играть в выбранные вами игры Gamecube и Wii на персональных компьютерах (ПК) Linux. Являясь свободно доступным игровым...
Как использовать чит-движок GameConqueror в Linux
В статье содержится руководство по использованию чит-движка GameConqueror в Linux. Многие пользователи, играющие в игры на Windows, часто используют п...