file input output operations c
Studija o izlaznim operacijama unosa datoteka i funkcijama pokazivača datoteka na C ++.
U programiranju u stvarnom vremenu imamo posla s velikim dijelovima podataka koji se ne mogu prilagoditi sa standardnih ulazno-izlaznih uređaja. Stoga trebamo koristiti sekundarnu pohranu za pohranu podataka. Korištenjem sekundarne pohrane obično pohranjujemo podatke u obliku datoteka.
Možemo čitati podatke iz datoteka ili zapisati podatke u datoteke pomoću niza podataka koji se nazivaju tokovi u tekstualnom ili binarnom formatu. Postoje razne ulazno / izlazne i druge operacije povezane s datotekama u C ++. Ovaj vodič objašnjava ove operacije povezane s datotekama pomoću različitih klasa.
=> Posjetite ovdje za ekskluzivnu seriju vodiča za obuku za C ++.
Što ćete naučiti:
Klase unosa / izlaza datoteke na C ++
Vidjeli smo iostream klasu na C ++ koja definira standardnu ulaznu i izlaznu funkcionalnost, uključujući cin i cout. Ova je klasa ograničena na standardne ulazne i izlazne uređaje poput tipkovnice i monitora.
Što se tiče operacija datoteka, C ++ ima drugačiji skup klasa koje se mogu koristiti.
Ovi su razredi opisani na sljedeći način:
- Ofstream: Klasa rukovanja datotekama koja označava tok izlazne datoteke i koristi se za upisivanje podataka u datoteke.
- Ifstream: Klasa rukovanja datotekama koja označava tok ulazne datoteke i koristi se za čitanje podataka iz datoteke.
- Fstream: Klasa za rukovanje datotekama koja ima sposobnost obrade i ifstream i ofstream. Može se koristiti za čitanje iz datoteke i pisanje u nju.
Sljedeće operacije su podržane u rukovanju datotekama C ++:
- Otvorite datoteku
- Zatvorite datoteku
- Čitanje iz datoteke
- Zapiši u datoteku
Pogledajmo detaljno svaku od ovih operacija !!
Otvorite datoteku
Pridruživanje objekta jedne od klasa streama datoteci bilo za čitanje ili pisanje ili oboje naziva se otvaranje datoteke. Otvorena datoteka predstavljena je u kodu pomoću ovog objekta streama. Tako će se svaka operacija čitanja / pisanja izvedena na ovom objektu streama primijeniti i na fizičku datoteku.
Općenita sintaksa za otvaranje datoteke s streamom je:
void open(const char* filename, ios::open mode mode)
Ovdje,
filename => Niz koji sadrži put i ime datoteke koju treba otvoriti.
mode => Izborni parametar koji označava način u kojem se datoteka treba otvoriti.
C ++ podržava razne načine u kojima se datoteka može otvoriti. Kombinaciju ovih načina rada možemo odrediti i pomoću operatora OR.
koji je najbolji softver za uklanjanje virusa
Datotečni način | Opis |
---|---|
ios :: in | Otvara datoteku u načinu unosa za čitanje. |
ios :: out | Otvara datoteku u izlaznom načinu za upisivanje podataka u datoteku. |
ios :: jeo | Postavite početni položaj na kraju datoteke. Ako zastavica kraja datoteke nije postavljena, početni položaj postavljen je na početak datoteke. |
ios :: trunc | Ako je datoteka otvorena za pisanje i već ima sadržaj, sadržaj se skraćuje. |
ios :: app | Otvara datoteku u načinu dodavanja tako da je sav sadržaj dodan na kraju datoteke. |
ios :: binarni | Otvara datoteku u binarnom načinu. |
Na primjer,ako želimo otvoriti datoteku “myfile.dat” za dodavanje podataka u binarnom načinu, tada možemo napisati sljedeći kod.
ofstream myfile;
myfile.open(“myfile.dat”, ios::out|ios::app|ios::binary);
Kao što je već spomenuto, parametar načina nije obvezan. Kada otvorimo datoteku bez navođenja drugog parametra, funkcija otvorenog člana ofstream, ifstream ili fstream ima zadani način rada s kojim se datoteka otvara.
Oni su dati na sljedeći način:
Razred | Zadani način |
---|---|
Ifstream | ios :: in |
od struje | ios :: out |
Fstream | ios :: u | ios :: van |
Dakle, ako ne odredimo drugi parametar u funkciji open, ovisno o korištenoj klasi streama, datoteka se otvara sa zadanim načinom rada.
Zatvaranje datoteke
Funkciju zatvaranja možemo koristiti za zatvaranje datoteke i oslobađanje resursa koje datoteka drži kad završimo s ulaznim i izlaznim operacijama u datoteci.
Funkcija zatvaranja datoteke je:
void close()
Dakle, kada završimo s operacijama na gornjoj datoteci myfile, datoteku možemo zatvoriti na sljedeći način:
myfile.close();
Jednom kada se datoteka zatvori pomoću funkcije zatvaranja, pridruženi objekt datoteke može se ponovno koristiti za otvaranje druge datoteke.
tcp ip intervju pitanja i odgovori pdf
Čitanje iz datoteke
Informacije možemo čitati iz datoteke redak po redak pomoću operatora ekstrakcije toka (>>). To je slično čitanju unosa sa standardnog ulaza pomoću cin-a. Jedina razlika je u slučaju datoteka, a umjesto cin koristimo objekt ifstream ili fstream.
Uzorak koda za čitanje iz datoteke dat je u nastavku:
ifstream myfile; myfile.open(“samp_file.txt”); cout<<”Reading from a file”<>data; cout<U gornjem kodu otvaramo datoteku i pomoću operatora za ekstrakciju toka (>>) čitamo sadržaj datoteke. Kad završimo s čitanjem, možemo zatvoriti datoteku.
Zapisivanje u datoteku
Također možemo zapisati podatke u datoteku pomoću operacija datoteka. Operator koji koristimo za upisivanje podataka u datoteku je operator umetanja toka (<<). 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.
Razmotrimo sljedeći primjer koda:
char data(100); ofstream myfile; myfile.open(“samp_file.txt”); cout<<”Enter the string to be written to file”<Ovdje čitamo redak s ulaza i zapisujemo ga u datoteku koja je otvorena s objektom ofstream.
U donjem primjeru koda pružamo demonstraciju svih operacija rukovanja datotekama.
#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; }
Izlaz:
Zapisivanje u datoteku
Unesite svoje ime: Ved
Upišite svoju dob: 7
Čitanje iz datoteke
Po
7
U gornjem programu prvo otvaramo datoteku u načinu pisanja. Zatim čitamo podatke tj. Ime i dob i zapisujemo ih u datoteku. Zatim zatvorimo ovu datoteku. Dalje, otvaramo istu datoteku u načinu čitanja i čitamo podatke redom po datoteku iz datoteke i izlazimo ih na zaslon.
Stoga ovaj program pokriva sve radnje I / O datoteka.
Datoteka državne troske
Postoje neke funkcije člana koje se koriste za provjeru stanja datoteke. Sve ove funkcije vraćaju logičku vrijednost.
Ove smo funkcije tabelarizirali na sljedeći način:
Funkcija Opis eof () Vraća true ako je tijekom čitanja datoteke dosegnut kraj datoteke. iznevjeriti() Vraća vrijednost true ako operacija čitanja / pisanja ne uspije ili se dogodi pogreška u formatiranju loše() Vraća true ako neuspješno čitanje iz datoteke ili pisanje u nju. dobro() Vraća false u istim slučajevima u kojima bi pozivanje bilo koje od gore navedenih funkcija vratilo true.
Nabavite / stavite i druge posebne operacije
Datotečni U / I potoci koje smo do sada vidjeli imaju unutarnji get i put položaji slični ostalim U / I tokovima poput iostream.
Klasa ifstream ima unutarnju poziciju dobivanja koja sadrži mjesto elementa / znaka koji se čita u datoteci u sljedećoj operaciji unosa. Klasa stream-a ima unutarnju stavku put koja sadrži mjesto elementa / znaka koji se zapisuje u sljedećoj izlaznoj operaciji.
Inače, fstream ima i get i put pozicije.
Kako bismo olakšali čitanje i pisanje pomoću ovih položaja, imamo nekoliko funkcija članova koje se koriste za promatranje i izmjenu tih položaja.
Te su funkcije navedene u nastavku:
Funkcije Opis Tellg () Vraća trenutnu poziciju pokazivača get Tellp () Vraća trenutnu poziciju put pokazivača traži (položaj) Premješta dobiva pokazivač na određeno mjesto brojeći se od početka datoteke seeg (pomak, smjer) Premještanja dobivaju pokazivač na vrijednost pomaka u odnosu na točku zadanu smjerom parametra. tražilo (položaj) Premješta stavite pokazivač na određeno mjesto brojeći od početka datoteke tražilo (pomak, smjer) Pomicanjem se postavlja pokazivač na vrijednost pomaka u odnosu na točku zadanu smjerom parametra.
Parametar smjer dana u gornjim prototipovima funkcija je nabrojano vrsta tipa tražidir i određuje točku od koje se računa pomak.
Može imati sljedeće vrijednosti.
ios :: pros Pomak od početka struje ios :: cur Pomak od trenutnog položaja ios :: kraj Pomak od kraja toka
Pogledajmo cjelovit Primjer koji pokazuje upotrebu ovih funkcija.
#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'< Izlaz:
Stvorena je nova datoteka
Početna pozicija pokazivača datoteke na: 34
Nakon potrage (-1, ios :: cur), položaj pokazivača datoteke na: 33
Nakon seeg (5, ios :: beg), pokazivač datoteke na: 5
Nakon seeg (1, ios :: cur), pokazivač datoteke na: 6
Kao što je prikazano u gornjem programu, imamo stvorenu datoteku u koju upisujemo redak teksta. Zatim pomoću različitih gore opisanih funkcija prikazujemo različite položaje pokazivača datoteke.
Zaključak
U ovom uputstvu vidjeli smo razne operacije datoteka kako bi se otvorili, zatvorili i čitali / upisivali podaci iz / u datoteku.
Također smo vidjeli funkcije za promjenu pokazivača datoteke kako bi se pristupilo određenim položajima u datoteci. U našim slijedećim vodičima razgovarat ćemo o nekoliko važnijih tema povezanih sa C ++.
pitanja i odgovori za intervjue za mobilno testiranje
=> Pročitajte jednostavnu seriju C ++ treninga.
Preporučena literatura
- Osnovne ulazno / izlazne operacije na C ++
- Ulaz-izlaz i datoteke u Pythonu (Python otvara, čita i piše u datoteku)
- Osnovne I / O operacije u Javi (ulazni / izlazni tokovi)
- Manipulacija datotekama u Unixu: Pregled Unix datotečnog sustava
- Unixovi posebni znakovi ili metaznakovi za manipulaciju datotekama
- Dopuštenja za pristup Unix datotekama: Unix Chmod, Chown i Chgrp
- Objekti datoteke VBScript: CopyFile, DeleteFile, OpenTextFile, čitanje i pisanje tekstualne datoteke
- Implementacija Jave: Izrada i izvršavanje Java JAR datoteke