file input output operations c
Štúdia o vstupných výstupných operáciách súborov a funkciách ukazovateľov súborov v C ++.
Pri programovaní v reálnom čase sa zaoberáme veľkými kusmi údajov, ktoré nie je možné prijať zo štandardných vstupno-výstupných zariadení. Preto musíme na ukladanie dát využívať sekundárne úložisko. Pomocou sekundárneho úložiska zvyčajne ukladáme údaje vo forme súborov.
Môžeme čítať údaje zo súborov alebo zapisovať údaje do súborov pomocou postupnosti údajov nazývaných toky, a to buď v textovom alebo binárnom formáte. So súbormi v C ++ súvisia rôzne vstupy / výstupy a ďalšie operácie. Tento výukový program vysvetľuje tieto operácie súvisiace so súbormi pomocou rôznych tried.
=> Navštívte tu exkluzívnu sériu výučbových kurzov C ++.
Čo sa dozviete:
Triedy vstupu a výstupu súborov v C ++
V C ++ sme videli triedu iostream, ktorá definuje štandardné vstupné a výstupné funkcie vrátane cin a cout. Táto trieda je obmedzená na štandardné vstupné a výstupné zariadenia, ako je klávesnica a monitor.
Pokiaľ ide o operácie so súbormi, C ++ má inú sadu tried, ktoré je možné použiť.
Tieto triedy sú opísané nižšie:
- Ofstream: Trieda spracovania súborov, ktorá označuje prúd výstupného súboru a používa sa na zápis údajov do súborov.
- Ifstream: Trieda spracovania súborov, ktorá označuje prúd vstupného súboru a používa sa na čítanie údajov zo súboru.
- Fstream: Trieda manipulácie so súbormi, ktorá má schopnosť spracovávať ifstream aj ofstream. Môže sa použiť na čítanie a zápis do súboru.
V spracovaní súborov C ++ sú podporované tieto operácie:
- Otvorte súbor
- Zatvorte súbor
- Čítať zo súboru
- Napíšte do súboru
Pozrime sa na každú z týchto operácií podrobne !!
Otvorte súbor
Priradenie objektu jednej z tried prúdov k súboru buď na čítanie, zápis alebo oboje sa nazýva otvorenie súboru. Otvorený súbor je v kóde predstavovaný pomocou tohto objektu streamu. Teda akákoľvek operácia čítania / zápisu vykonaná na tomto objekte toku bude použitá aj na fyzický súbor.
Všeobecná syntax na otvorenie súboru v streame je:
void open(const char* filename, ios::open mode mode)
Tu,
filename => Reťazec obsahujúci cestu a názov súboru, ktorý sa má otvoriť.
mode => Nepovinný parameter označujúci režim, v ktorom sa má súbor otvoriť.
C ++ podporuje rôzne režimy, v ktorých je možné súbor otvoriť. Kombináciu týchto režimov môžeme určiť aj pomocou operátora OR.
nástroje na sledovanie systému pre Windows 10
Režim súborov | Popis |
---|---|
ios :: v | Otvorí súbor v režime vstupu na čítanie. |
ios :: von | Otvorí súbor vo výstupnom režime na zápis údajov do súboru. |
ios :: jedol | Nastavte začiatočnú pozíciu na konci súboru. Ak nie je nastavený príznak konca súboru, počiatočná poloha sa nastaví na začiatok súboru. |
ios :: trunc | Ak je súbor otvorený na zápis a už má obsah, obsah sa skráti. |
ios :: aplikácia | Otvorí súbor v režime pridávania tak, aby sa všetok obsah pripojil na koniec súboru. |
ios :: binárne | Otvára súbor v binárnom režime. |
Napríklad,ak chceme otvoriť súbor „myfile.dat“ na pripojenie údajov v binárnom režime, môžeme napísať nasledujúci kód.
ofstream myfile;
myfile.open(“myfile.dat”, ios::out|ios::app|ios::binary);
Ako už bolo spomenuté, parameter mode je voliteľný. Keď otvoríme súbor bez zadania druhého parametra, otvorená členská funkcia ofstream, ifstream alebo fstream má predvolený režim, pomocou ktorého je možné súbor otvoriť.
Sú uvedené nasledovne:
Trieda | Predvolený režim |
---|---|
Ifstream | ios :: v |
ofstream | ios :: von |
Fstream | ios :: in | ios :: out |
Pokiaľ teda vo funkcii open neurčíme druhý parameter, v závislosti od použitej triedy toku sa súbor otvorí v predvolenom režime.
Zatvorenie súboru
Pomocou funkcie zatvorenia môžeme súbor zavrieť a uvoľniť prostriedky, ktoré súbor obsahuje, keď skončíme so vstupnými a výstupnými operáciami so súborom.
Funkcia na zatvorenie súboru je:
void close()
Keď sme teda hotoví s operáciami na vyššie uvedenom súbore myfile, môžeme súbor zavrieť nasledovne:
myfile.close();
Po uzavretí súboru pomocou funkcie zatvorenia je možné priradený objekt súboru znova použiť na otvorenie iného súboru.
Čítanie zo súboru
Informácie môžeme načítať zo súboru po riadku pomocou operátora extrakcie toku (>>). Je to podobné ako pri čítaní vstupu zo štandardného vstupu pomocou cin. Jediný rozdiel je v prípade súborov, namiesto cin používame objekt ifstream alebo fstream.
Vzorový kód na čítanie zo súboru je uvedený nižšie:
ifstream myfile; myfile.open(“samp_file.txt”); cout<<”Reading from a file”<>data; cout<Vo vyššie uvedenom kóde otvoríme súbor a pomocou operátora extrakcie toku (>>) prečítame obsah súboru. Po dokončení čítania môžeme súbor zavrieť.
Zápis do súboru
Dáta môžeme tiež zapisovať do súboru pomocou operácií so súborom. Operátor, ktorý používame na zápis údajov do súboru, je operátor vkladania toku (<<). 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.
Uvažujme o nasledujúcom príklade kódu:
otázky a odpovede na rozhovor so skriptom vb
char data(100); ofstream myfile; myfile.open(“samp_file.txt”); cout<<”Enter the string to be written to file”<Tu prečítame riadok zo vstupu a zapíšeme ho do súboru, ktorý bol otvorený pomocou ofstream objektu.
V príklade kódu nižšie poskytujeme ukážku všetkých operácií spracovania súborov.
#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; }
Výkon:
Zápis do spisu
Zadajte svoje meno: Ved
Zadajte svoj vek: 7
Čítanie zo súboru
Autor:
7
Vo vyššie uvedenom programe najskôr otvoríme súbor v režime zápisu. Potom načítame údaje, tj. Meno a vek, a zapíšeme ich do súboru. Tento súbor potom zatvoríme. Ďalej otvoríme ten istý súbor v režime čítania a zo súboru načítame údajový riadok po riadku a zobrazíme ho na obrazovke.
Tento program teda pokrýva všetky I / O operácie so súbormi.
Založte štátne trosky
Na kontrolu stavu súboru sa používajú niektoré členské funkcie. Všetky tieto funkcie vracajú logickú hodnotu.
Tabuľkovali sme tieto funkcie nasledovne:
Funkcia Popis eof () Vráti hodnotu true, ak sa počas čítania súboru dosiahne koniec súboru. zlyhať () Vráti hodnotu true, keď zlyhajú operácie čítania a zápisu alebo dôjde k chybe formátu zlý () Vráti hodnotu true, ak zlyhá čítanie alebo zápis do súboru. dobrý () Vráti hodnotu false v rovnakých prípadoch, keď by volanie ktorejkoľvek z vyššie uvedených funkcií vrátilo hodnotu true.
Get / Put a ďalšie špeciálne operácie
Súbor I / O streamov, ktoré sme doteraz videli, má interné pozície get a put podobné ostatným I / O streamom, ako je iostream.
Trieda ifstream má pozíciu interného získania, ktorá obsahuje umiestnenie prvku / znaku, ktorý sa má načítať v súbore pri nasledujúcej vstupnej operácii. Trieda ofstream má vnútornú put pozíciu, ktorá obsahuje umiestnenie prvku / znaku, ktorý sa má zapísať v nasledujúcej výstupnej operácii.
Mimochodom, fstream má pozície typu get aj put.
Na uľahčenie čítania a zápisu pomocou týchto pozícií máme niekoľko členských funkcií, ktoré sa používajú na pozorovanie a úpravu týchto pozícií.
Tieto funkcie sú uvedené nižšie:
Funkcie Popis tellg () Vráti aktuálnu pozíciu ukazovateľa get tellp () Vráti aktuálnu pozíciu ukazovateľa put hľadať (pozícia) Presunie získanie ukazovateľa na určené miesto, ktoré sa počíta od začiatku súboru hľadať (offset, smer) Pohyby dostanú ukazovateľ na hodnotu posunutia vzhľadom k bodu danému smerom parametra. hľadať (pozícia) Pohyby umiestnia ukazovateľ na určené miesto, ktoré sa počíta od začiatku súboru hľadať (offset, smer) Pohyby umiestnia ukazovateľ na hodnotu offsetu vzhľadom na bod daný smerom parametra.
Parameter smer uvedený vo vyššie uvedených funkčných prototypoch je vymenované typ typu hľadať a určuje bod, od ktorého sa počíta offset.
Môže mať nasledujúce hodnoty.
ios :: prosiť Ofset od začiatku streamu ios :: cur Posun od aktuálnej polohy ios :: koniec Odsadenie od konca streamu
Pozrime sa na úplný príklad, ktorý demonštruje použitie týchto funkcií.
ako urobiť útok ddos na ip
#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'< Výkon:
Bol vytvorený nový súbor
Počiatočná pozícia ukazovateľa súboru o: 34
Po vyhľadaní (-1, ios :: cur) umiestnite ukazovateľ súboru na: 33
Po hľadaní (5, ios :: beg), ukazovateľ súboru na: 5
Po hľadaní (1, ios :: cur), ukazovateľ súboru na: 6

Ako ukazuje vyššie uvedený program, máme vytvorený súbor, do ktorého napíšeme riadok textu. Potom pomocou rôznych vyššie popísaných funkcií zobrazíme rôzne polohy ukazovateľa súboru.
Záver
V tomto tutoriáli sme videli rôzne operácie so súbormi na otváranie, zatváranie a čítanie / zápis dát z / do súboru.
Tiež sme videli funkcie na zmenu ukazovateľa súboru, aby sme získali prístup k určitým pozíciám v súbore. V našich ďalších tutoriáloch si rozoberieme niekoľko ďalších dôležitých tém týkajúcich sa C ++.
=> Prečítajte si sériu Easy C ++ Training Series.
Odporúčané čítanie
- Základné operácie vstupu / výstupu v C ++
- Vstup-výstup a súbory v Pythone (otvorený Python, čítanie a zápis do súboru)
- Základné I / O operácie v Jave (vstupné / výstupné toky)
- Manipulácia so súbormi v systéme Unix: Prehľad systému súborov Unix
- Špeciálne znaky alebo metaznaky Unix na manipuláciu so súbormi
- Povolenia na prístup k súborom v systéme Unix: Unix Chmod, Chown a Chgrp
- Objekty súborov VBScript: CopyFile, DeleteFile, OpenTextFile, čítanie a zápis textového súboru
- Nasadenie Java: Vytvorenie a vykonanie súboru Java JAR