В этой статье мы покажем вам, как читать и записывать в файл на языке программирования C ++, используя несколько примеров. Чтобы понять файловые операции C ++, такие как чтение и запись, мы должны сначала понять концепцию потока в C++.
Что такое поток?
Поток - это просто поток данных или символов. Есть два типа потоков: входные потоки и выходные потоки. Входной поток используется для чтения данных с внешнего устройства ввода, такого как клавиатура, а выходной поток используется для записи данных на внешнее устройство вывода, такое как монитор. Файл можно рассматривать как источник ввода и вывода.
В C ++ мы используем поток для отправки или получения данных к внешнему источнику или из него.
Мы можем использовать встроенные классы для доступа к потоку ввода / вывода, i.е., «IOS».
Вот иерархия потоковых классов языка программирования C ++:
Объекты «cin» и «cout» используются для чтения данных с клавиатуры и отображения вывода на мониторе соответственно. Кроме того, ifstream, что означает «поток входного файла», используется для чтения потока данных из файла, а «ofstream», что означает «поток выходного файла», используется для записи потока данных. в файл.
Иострам.h »содержит все необходимые стандартные классы потоков ввода / вывода на языке программирования C ++.
Примеры
Теперь, когда вы понимаете основы потоков, мы обсудим следующие примеры, которые помогут вам лучше понять файловые операции в C ++:
- Пример 1: открытие и закрытие файла
- Пример 2: Запись в файл
- Пример 3: чтение из файла
- Пример 4: Чтение и запись в файл
- Пример 5: Чтение и запись в двоичный файл
Пример 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 ++, на нескольких примерах. Кроме того, мы показали вам, как читать и записывать данные как в текстовые файлы, так и в двоичные файлы.