file input output operations c
Проучване върху изходни операции за вход на файл и функции на файлови указатели в C ++.
При програмирането в реално време ние се справяме с големи части от данни, които не могат да бъдат приети от стандартните входно-изходни устройства. Следователно трябва да използваме вторично хранилище за съхранение на данни. Използвайки вторично хранилище, ние обикновено съхраняваме данни под формата на файлове.
Можем да четем данни от файлове или да записваме данни във файлове, като използваме последователност от данни, наречени потоци, в текстов или двоичен формат. Има различни входно / изходни и други операции, свързани с файлове в C ++. Този урок обяснява тези операции, свързани с файлове, използващи различни класове.
=> Посетете тук за ексклузивната поредица за обучение на C ++.
Какво ще научите:
Класове за въвеждане / извеждане на файлове в C ++
Видяхме iostream клас в C ++, който определя стандартната функционалност за въвеждане и извеждане, включително cin и cout. Този клас е ограничен до стандартните входни и изходни устройства, съответно клавиатура и монитор.
Що се отнася до файловите операции, C ++ има различен набор от класове, които могат да се използват.
Тези класове са описани по-долу:
- От потока: Клас за обработка на файлове, който означава изходния файлов поток и се използва за записване на данни във файлове.
- Ако потокът: Клас за обработка на файлове, който означава входния файлов поток и се използва за четене на данни от файла.
- Fstream: Клас за обработка на файлове, който има способността да обработва както ifstream, така и ofstream. Може да се използва за четене и запис във файл.
Поддържат се следните операции в C ++ File Handling:
- Отворете файл
- Затворете файл
- Четене от файл
- Записване във файл
Нека да видим всяка от тези операции в детайли !!
Отворете файл
Свързването на обект на един от класовете на потока към файл или за четене или писане, или и двете се нарича отваряне на файл. Отворен файл е представен в код с помощта на този обект на потока. По този начин всяка операция за четене / запис, извършена върху този обект на поток, ще бъде приложена и към физическия файл.
Общият синтаксис за отваряне на файл с потока е:
void open(const char* filename, ios::open mode mode)
Тук,
filename => низът, съдържащ път и име на файла, който ще се отвори.
mode => Незадължителен параметър, указващ режима, в който файлът трябва да бъде отворен.
C ++ поддържа различни режими, в които файлът може да бъде отворен. Също така можем да посочим комбинация от тези режими, използвайки оператора OR.
как да разделя низ от символен питон
Файлов режим | Описание |
---|---|
ios :: in | Отваря файла в режим на въвеждане за четене. |
ios :: out | Отваря файла в изходен режим за запис на данни във файл. |
ios :: ял | Задайте начална позиция в края на файла. Ако флагът на края на файла не е зададен, първоначалната позиция се задава в началото на файла. |
ios :: trunc | Ако файлът е отворен за писане и вече има съдържание, съдържанието се съкращава. |
ios :: app | Отваря файла в режим на добавяне, така че цялото съдържание се добавя в края на файла. |
ios :: двоичен | Отваря файл в двоичен режим. |
Например,ако искаме да отворим файл “myfile.dat” за добавяне на данни в двоичен режим, тогава можем да напишем следния код.
ofstream myfile;
myfile.open(“myfile.dat”, ios::out|ios::app|ios::binary);
Както вече споменахме, параметърът на режима не е задължителен. Когато отваряме файл, без да посочваме втория параметър, функция с отворен член на ofstream, ifstream или fstream има режим по подразбиране, с който да отворите файла.
Те са дадени както следва:
Клас | Режим по подразбиране |
---|---|
Ifstream | ios :: in |
от течението | ios :: out |
Fstream | ios :: in | ios :: out |
Така че, ако не посочим втория параметър в отворената функция, в зависимост от използвания клас на потока, файлът се отваря с режима по подразбиране.
Затваряне на файл
Можем да използваме функцията затваряне, за да затворим файл и да освободим ресурсите, съхранявани от файла, когато приключим с операциите за въвеждане и извеждане на файл.
Функцията за затваряне на файл е:
void close()
И така, когато приключим с операциите върху горния файл myfile, можем да затворим файла, както следва:
myfile.close();
След като файлът бъде затворен с помощта на функцията за затваряне, свързаният с него обект на файл може да бъде използван повторно за отваряне на друг файл.
Четене от файл
Можем да четем информацията от файл ред по ред, използвайки оператора за извличане на поток (>>). Това е подобно на четенето на входни данни от стандартния вход, използвайки cin. Единствената разлика е в случай на файлове, ние използваме ifstream или fstream обект вместо cin.
Примерен код за четене от файл е даден по-долу:
ifstream myfile; myfile.open(“samp_file.txt”); cout<<”Reading from a file”<>data; cout<В горния код отваряме файл и с помощта на оператора за извличане на поток (>>) четем съдържанието на файла. След като приключим с четенето, можем да затворим файла.
Писане във файл
Също така можем да записваме данни във файл, като използваме файловите операции. Операторът, който използваме за записване на данни във файл, е оператор за вмъкване на поток (<<). Once again this is the same operator that we use to print data to a standard output device using cout. Difference between the two is that for file related writing we use ofstream or fstream object.
Нека разгледаме следния примерен код:
char data(100); ofstream myfile; myfile.open(“samp_file.txt”); cout<<”Enter the string to be written to file”<Тук четем ред от входа и го записваме във файл, който е отворен с обекта на потока.
В примера на кода по-долу предоставяме демонстрация на всички операции по обработка на файлове.
#include #include using namespace std; int main () { char data(100); // opening a file in write mode. ofstream myfile; myfile.open('E:\message.txt'); cout << 'Writing to the file' << endl; cout << 'Enter your name: '; cin.getline(data, 100); myfile << data << endl; cout <> data; cin.ignore(); myfile << data << endl; // close the opened file. myfile.close(); // opening a file in read mode. ifstream infile; infile.open('E:\message.txt'); cout << 'Reading from a file' <> data; cout << data <> data; cout << data << endl; infile.close(); return 0; }
Изход:
въпроси и отговори за интервю за дизайн на база данни
Записване във файла
Въведете името си: Ved
Въведете възрастта си: 7
Четене от файл
От
7
В горната програма първо отваряме файл в режим на запис. След това четем данни, т.е. име и възраст и ги записваме във файл. След това затваряме този файл. След това отваряме същия файл в режим на четене и четем данните ред по ред от файла и ги извеждаме на екрана.
По този начин тази програма обхваща всички файлови I / O операции.
Файлови държавни шлаки
Има някои функции на членове, които се използват за проверка на състоянието на файла. Всички тези функции връщат булева стойност.
Табулирали сме тези функции по следния начин:
Функция Описание eof () Връща true, ако е достигнат края на файла по време на четене на файла. неуспешно () Връща вярно, когато операцията за четене / запис се провали или възникне грешка във форматирането лошо () Връща вярно, ако четенето от или записването във файл е неуспешно. добре() Връща false в същите случаи, в които извикването на някоя от горните функции би върнало true.
Вземете / поставете и други специални операции
Файловите I / O потоци, които сме виждали досега, имат вътрешни get и put позиции, подобни на другите I / O потоци като iostream.
Класът ifstream има вътрешна позиция за получаване, която съдържа местоположението на елемента / символа, който трябва да се прочете във файла при следващата операция на въвеждане. Класът на потока има вътрешна позиция на пут, която съдържа местоположението на елемента / символа, който трябва да бъде записан при следващата изходна операция.
Между другото, fstream има както позиции за получаване, така и за поставяне.
За да улесним четенето и писането, използвайки тези позиции, имаме няколко функции-членове, които се използват за наблюдение и промяна на тези позиции.
Тези функции са изброени по-долу:
Функции Описание Tellg () Връща текущата позиция на указателя get кажи () Връща текущата позиция на пут указателя търси (позиция) Премества получавате указател към определено местоположение, отброяващо от началото на файла търси (отместване, посока) Преместванията получават указател към стойността на отместването спрямо точката, зададена от посоката на параметъра. търсене (позиция) Премества се поставя указател към определено местоположение, отброяващо от началото на файла търсене (отместване, посока) Преместванията поставят указател на стойността на отместването спрямо точката, зададена от посоката на параметъра.
Параметърът посока даден в горните прототипи на функции е изброени тип тип търси дир и той определя точката, от която се отчита изместването.
Може да има следните стойности.
ios :: прося Отместване от началото на потока ios :: cur Отместване от текущата позиция ios :: край Отместване от края на потока
Нека видим пълен пример, който демонстрира използването на тези функции.
#include #include using namespace std; int main() { fstream myfile; myfile.open('E:\myfile.txt',ios::out); if(!myfile) { cout<<'Cannot create File...'; } else { cout<<'New file created'< Изход:
Създаден е нов файл
Първоначална позиция на указателя на файла на: 34
След търсене (-1, ios :: cur), Позиция на файловия указател на: 33
След търсене (5, ios :: beg), Файл указател на: 5
След търсене (1, ios :: cur), Файл указател на: 6
java добавяне към края на масива
Както е показано в горната програма, имаме създаден файл, в който пишем ред с текст. След това, използвайки различните функции, описани по-горе, показваме различни позиции на указателя на файла.
Заключение
В този урок видяхме различните файлови операции за отваряне, затваряне и четене / запис на данни от / във файл.
Виждали сме и функциите за промяна на указателя на файла с цел достъп до определени позиции във файла. В следващите ни уроци ще обсъдим още няколко важни теми, свързани със C ++.
=> Прочетете серията Easy C ++ Training.
Препоръчително четене
- Основни операции по въвеждане / извеждане в C ++
- Вход-изход и файлове в Python (Python отваря, чете и записва във файл)
- Основни I / O операции в Java (входни / изходни потоци)
- Файлова манипулация в Unix: Преглед на файловата система Unix
- Специални символи или метасимволи на Unix за манипулиране с файлове
- Разрешения за достъп до файлове на Unix: Unix Chmod, Chown и Chgrp
- Обекти на файл VBScript: CopyFile, DeleteFile, OpenTextFile, четене и запис на текстов файл
- Разполагане на Java: Създаване и изпълнение на Java JAR файл