file input output operations c
Студија о излазним операцијама уноса датотека и функцијама показивача датотека у Ц ++.
У програмирању у реалном времену имамо посла са великим деловима података који се не могу прилагодити са стандардних улазно-излазних уређаја. Због тога морамо да користимо секундарно складиште за чување података. Коришћењем секундарне меморије обично складиштимо податке у облику датотека.
Можемо читати податке из датотека или записати податке у датотеке помоћу низа података који се називају токови у текстуалном или бинарном формату. Постоје различити улази / излази и друге операције повезане са датотекама у Ц ++. Овај водич објашњава ове операције повезане са датотекама помоћу различитих класа.
=> Посетите овде за ексклузивну серију водича за обуку за Ц ++.
Шта ћете научити:
Класе уноса / излаза датотека на Ц ++
Видели смо класу иостреам у Ц ++ која дефинише стандардну улазну и излазну функционалност, укључујући цин и цоут. Ова класа је ограничена на стандардне улазне и излазне уређаје попут тастатуре и монитора.
Када је реч о операцијама датотека, Ц ++ има другачији скуп класа које се могу користити.
Ове класе су описане као у наставку:
- Офстреам: Класа руковања датотекама која означава излазни ток датотека и користи се за уписивање података у датотеке.
- Ифстреам: Класа руковања датотекама која означава улазни ток датотеке и користи се за читање података из датотеке.
- Фстреам: Класа за руковање датотекама која има способност руковања и ифстреам и офстреам. Може се користити за читање и писање у датотеку.
Следеће операције су подржане у програму Ц ++ Филе Хандлинг:
- Отворите датотеку
- Затворите датотеку
- Читајте из датотеке
- Запиши у датотеку
Погледајмо сваку од ових операција детаљно !!
Отворите датотеку
Повезивање објекта једне од класа токова са датотеком или за читање или писање или обоје назива се отварање датотеке. Отворена датотека је представљена у коду помоћу овог објекта стрима. Тако ће се било која операција читања / писања изведена на овом објекту тока применити и на физичку датотеку.
Општа синтакса за отварање датотеке у току је:
void open(const char* filename, ios::open mode mode)
Ево,
филенаме => Низ који садржи путању и име датотеке коју треба отворити.
моде => Изборни параметар који означава начин у којем се датотека треба отворити.
Ц ++ подржава различите режиме у којима се датотека може отворити. Такође можемо одредити комбинацију ових режима помоћу оператора ОР.
примс и крускал алгоритам са примером
Филе моде | Опис |
---|---|
иос :: ин | Отвара датотеку у режиму уноса за читање. |
иос :: оут | Отвара датотеку у излазном режиму за уписивање података у датотеку. |
иос :: јео | Поставите почетну позицију на крају датотеке. Ако заставица краја датотеке није постављена, почетни положај постављен је на почетак датотеке. |
иос :: трунц | Ако је датотека отворена за писање и већ има садржај, садржај се скраћује. |
иос :: апп | Отвара датотеку у режиму додавања тако да се сав садржај додаје на крају датотеке. |
иос :: бинарни | Отвара датотеку у бинарном режиму. |
На пример,ако желимо да отворимо датотеку „мифиле.дат“ за додавање података у бинарном режиму, онда можемо да напишемо следећи код.
ofstream myfile;
myfile.open(“myfile.dat”, ios::out|ios::app|ios::binary);
Као што је већ поменуто, параметар мода није обавезан. Када отворимо датотеку без навођења другог параметра, функција отвореног члана офстреам, ифстреам или фстреам има задати режим за отварање датотеке.
Они су дати на следећи начин:
Класа | Подразумеван мод |
---|---|
Ифстреам | иос :: ин |
офстреам | иос :: оут |
Фстреам | иос :: ин | иос :: оут |
Дакле, ако не одредимо други параметар у функцији опен, у зависности од класе тока која се користи, датотека се отвара са подразумеваним режимом.
Затварање датотеке
Функцију затварања можемо користити за затварање датотеке и ослобађање ресурса које датотека држи када завршимо са улазним и излазним операцијама у датотеци.
Функција затварања датотеке је:
void close()
Дакле, када завршимо са операцијама на горњој датотеци мифиле, можемо је затворити на следећи начин:
myfile.close();
Једном када се датотека затвори помоћу функције затварања, придружени објекат датотеке може се поново користити за отварање друге датотеке.
Читање из датотеке
Информације можемо читати из датотеке ред по ред помоћу оператора за екстракцију тока (>>). Ово је слично читању уноса са стандардног улаза помоћу цин-а. Једина разлика је у случају датотека, ми користимо објект ифстреам или фстреам уместо цин.
Пример кода за читање из датотеке дат је у наставку:
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; }
Излаз:
Писање у датотеку
Унесите своје име: Вед
Унесите своје године: 7
Читање из датотеке
Од стране
7
У горњем програму прво отварамо датотеку у режиму писања. Затим читамо податке, односно име и старост, и записујемо их у датотеку. Затим затворимо ову датотеку. Даље, отварамо исту датотеку у режиму читања и читамо податке редом по ред из датотеке и излазимо на екран.
како додати низ у низ низова
Стога овај програм покрива све фајл И / О операције.
Датотеке државне шљаке
Постоје неке функције члана које се користе за проверу стања датотеке. Све ове функције враћају логичку вредност.
Ове функције табелирали смо на следећи начин:
Функција Опис еоф () Враћа тачно ако се током читања датотеке дође до краја датотеке. неуспех () Враћа тачно када операција читања / писања не успе или се догоди грешка у форматирању лоше () Враћа тачно ако неуспешно читање из датотеке или писање у њу. Добро() Приказује фалсе у истим случајевима у којима би позивање било које од горе наведених функција вратило труе.
Набавите / ставите и друге специјалне операције
Улазно-излазни токови датотека које смо до сада видели имају унутрашњи гет и пут положаји слични осталим У / И токовима попут иостреам-а.
Класа ифстреам има интерну позицију добијања која садржи локацију елемента / карактера који се чита у датотеци у следећој операцији уноса. Класа тока има унутрашњу пут позицију која садржи локацију елемента / карактера који се записује у следећој излазној операцији.
Иначе, фстреам има и гет и пут позиције.
Да бисмо олакшали читање и писање користећи ове положаје, имамо неколико функција чланова које се користе за посматрање и модификовање ових положаја.
Ове функције су наведене у наставку:
Функције Опис Теллг () Приказује тренутну позицију показивача гет Теллп () Даје тренутну позицију пут показивача тражи (положај) Премештањем добија се показивач на одређену локацију рачунајући од почетка датотеке сеег (офсет, правац) Премјештања добивају показивач на вриједност помака у односу на тачку дату смјером параметра. тражи (положај) Премештањем се поставља показивач на одређену локацију рачунајући од почетка датотеке тражи (помак, правац) Премјештања стављају показивач на вриједност помака у односу на тачку дату смјером параметра.
Параметар правац дато у горњим прототиповима функција је набројани врста типа сеедир и одређује тачку од које се рачуна офсет.
Може имати следеће вредности.
иос :: поч Помак од почетка тока иос :: цур Помак од тренутне позиције иос :: крај Помак од краја тока
Погледајмо комплетан Пример који показује употребу ових функција.
#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, иос :: цур), Позиција показивача датотеке на: 33
Након сеег (5, иос :: бег), показивач датотеке на: 5
Након сеег (1, иос :: цур), показивач датотеке на: 6

Као што је приказано у горњем програму, имамо датотеку у коју уписујемо ред текста. Затим помоћу различитих горе описаних функција приказујемо различите положаје показивача датотека.
Закључак
У овом упутству смо видели разне операције датотека како би се отворили, затворили и читали / писали подаци из / у датотеку.
Такође смо видели функције за промену показивача датотеке како би се приступило одређеним позицијама у датотеци. У нашим следећим водичима разговараћемо о још неколико важних тема повезаних са Ц ++.
како заказати инстаграм постове бесплатно
=> Прочитајте серију Еаси Ц ++ Траининг Сериес.
Препоручено читање
- Основне улазно / излазне операције на Ц ++
- Улаз-излаз и датотеке у Питхону (Питхон отвара, чита и пише у датотеку)
- Основне И / О операције у Јави (улазни / излазни токови)
- Манипулација датотекама у Унику: Преглед система Уник датотека
- Уник посебни знакови или метазнакови за манипулисање датотекама
- Дозволе за приступ Уник датотекама: Уник Цхмод, Цховн и Цхгрп
- Објекти датотеке ВБСцрипт: ЦопиФиле, ДелетеФиле, ОпенТектФиле, читање и писање текстуалне датотеке
- Примена Јава-а: Стварање и извршавање Јава ЈАР датотеке