C++ I/O operácia využíva koncept streamu. Séria bajtov alebo tok údajov sa označuje ako prúd. Urýchľuje výkon.
Ak sa bajty prenesú z hlavnej pamäte do zariadenia, ako je tlačiareň, obrazovka, sieťové pripojenie atď., nazýva sa to výstupná operácia.
Vstupná operácia nastane, keď bajty prúdia zo zariadenia, ako je tlačiareň, obrazovka alebo sieťové pripojenie do hlavnej pamäte.
V C++, preddefinované funkcie a deklarácie sú poskytované prostredníctvom hlavičkových súborov, čo vám umožňuje vykonávať špecifické úlohy bez toho, aby ste museli písať nový kód od začiatku. Niekoľko dôležitých hlavičkových súborov pre vstupné/výstupné operácie v C++ obsahuje funkcie na efektívne vykonávanie vstupných a výstupných úloh. C++ Standard Library, zbierka tried a metód vytvorených v programovacom jazyku C++, obsahuje tieto hlavičkové súbory. Poďme diskutovať o hlavných hlavičkových súboroch pre vstupné/výstupné operácie:
Hlavička súboru | Funkcia a popis |
---|---|
Používa sa na definovanie cout, cin a cerr objekty, ktoré zodpovedajú štandardnému výstupnému toku, štandardnému vstupnému toku a štandardnému chybovému toku. | |
Používa sa na deklarovanie služieb užitočných na vykonávanie formátovaných I/O, ako napr setprecision a setw. | |
Používa sa na deklarovanie služieb na spracovanie súborov riadené používateľom. |
iostream: Je to jeden z najdôležitejších hlavičkových súborov pre vstupné/výstupné operácie v C++. To znamená 'vstup výstup' Prúd. Pre prácu s rôznymi formami vstupných/výstupných tokov, iostream hlavičkový súbor obsahuje triedy istream (vstupný tok) a ostream (výstupný tok) ako aj jeho odvodené triedy ifstream, ofstream , a stringstream . Najčastejšie používané triedy tohto hlavičkového súboru sú cin (štandardný vstup) a cout (štandardný výstup) , ktoré vám umožňujú čítať vstup používateľa a zobrazovať výstup do konzoly. Napríklad:
#include using namespace std; int main() { int num; cout <> num; cout << 'You entered: ' << num << endl; return 0; }
Výkon
Enter a number: 42 You entered: 42
iomanip: Tento hlavičkový súbor znamená 'input-output manipulation' . Poskytuje nástroje na formátovanie vstup a výkon . Umožňuje vám upravovať zarovnanie, šírka, presnosť a ďalšie funkcie formátovania vstupu a výstupu. Setw, setprecision, fixed, left, right a ďalšie pravidelne používané funkcie sú uvedené nižšie. Je to užitočné najmä na prezentáciu údajov určitým spôsobom.
Príklad:
#include #include using namespace std; int main() { double pi = 3.14159; cout << fixed << setprecision(2) << 'Value of pi: ' << pi << endl; return 0; }
Výkon
vicky kaushal vek
Value of pi: 3.14
Prúd: Zavolá sa hlavičkový súbor pre operácie vstupu/výstupu súboru fstream . Obsahuje triedy na čítanie a zápis do súborov ifstream (stream vstupného súboru) a ofstream (stream výstupného súboru) . Systém používa tieto triedy na otváranie súborov iba na čítanie a na zápis.
Príklad:
#include #include using namespace std; int main() { ofstream outputFile('output.txt'); if (outputFile.is_open()) { outputFile << 'Hello, File I/O!'; outputFile.close(); cout << 'File is written successfully.' << endl; } else { cout << 'Failed to open the file.' << endl; } return 0; }
Výkon
The file was written successfully.
Tieto hlavičkové súbory patria medzi najdôležitejšie pre vstupné/výstupné úlohy C++. Každý z nich má špecifický účel a ponúka nástroje potrebné na úspešné riadenie úloh zahŕňajúcich vstup a výstup, či už ide o interakciu s konzola, výstup formátovania alebo prácu so súbormi.
V C++ často používame 'použitie menného priestoru std;' po hlavičkových súboroch. The menný priestor std; príkaz sa často používa v C++ na zefektívnenie kódu pri práci so štandardnými komponentmi knižnice. Pozrime sa podrobnejšie na funkciu a aplikáciu tohto príkazu:
A menný priestor je technika na zoskupovanie podobných identifikátorov (ako napr triedy, funkcie , a premenných ), aby sa predišlo konfliktom mien. Štandardná knižnica C++ poskytuje svoje časti (napríklad cin, cout atď.) pod menným priestorom std.
Termín 'štandard' sa skráti na 'std' a obsahuje všetky prvky štandardnej knižnice. Týmto spôsobom sa znížia konflikty mien s identifikátormi nastavenými vo vašom kóde.
Teraz si povedzme o tom, prečo používať menný priestor std; používa sa vyhlásenie:
Bez použitia menného priestoru std:
#include int main() { std::cout << 'Hello, world!' << std::endl; return 0; } With using namespace std: #include using namespace std; int main() { cout << 'Hello, world!' << endl; return 0; }
Ako vidíte, pomocou menný priestor std; výpis umožňuje vynechať std:: predpona pri prístupe k štandardným komponentom knižnice. Vďaka tomu je váš kód kratší a čitateľnejší, pretože ho nemusíte opakovať std:: pred každým štandardným identifikátorom knižnice.
Súbory hlavičky I/O knižnice
Štandardný výstupný tok (cout):
Objekt cout je preddefinovaný objekt triedy ostream. Je pripojený k štandardnému výstupnému zariadeniu, ktorým je zvyčajne obrazovka. Cout sa používa v kombinácii s operátorom vkladania prúdu (<<) to show the output on a console< p>
Pozrime sa na jednoduchý príklad štandardného výstupného toku (cout):
#include using namespace std; int main( ) { char ary[] = 'Welcome to C++ tutorial'; cout << 'Value of ary is: ' << ary << endl; }
Výkon
Value of ary is: Welcome to C++ tutorial
Štandardný vstupný tok (cin)
The jedenie je preddefinovaným objektom Prúd trieda. Je spojený so štandardným vstupným zariadením, ktorým je zvyčajne klávesnica. Cin sa používa v spojení s operátorom extrakcie prúdu (>>) na čítanie vstupu z konzoly.
Pozrime sa na jednoduchý príklad štandardného vstupného toku (cin):
#include using namespace std; int main( ) { int age; cout <> age; cout << 'Your age is: ' << age << endl; }
Výkon
Enter your age: 22 Your age is: 22
Štandardná koncová čiara (endl)
The endl je preddefinovaný objekt náš nepriateľ trieda. Používa sa na vloženie znakov nového riadku a vyprázdnenie prúdu.
Pozrime sa na jednoduchý príklad štandardnej koncovej čiary (endl):
#include using namespace std; int main( ) { cout << 'C++ Tutorial'; cout << ' Javatpoint'<<endl; cout << 'end of line'<<endl; } < pre> <p> <strong>Output</strong> </p> <pre> C++ Tutorial Javatpoint End of line </pre> <h3>Un-buffered standard error stream (cerr):</h3> <p> <strong> <em>cerr</em> </strong> stands for <strong> <em>'standard error'</em> .</strong> </p> <p>It is an unbuffered stream, meaning that output sent to <strong> <em>cerr</em> </strong> is immediately displayed on the console without buffering.</p> <p>It is typically used for displaying error messages and diagnostic information, which need to be displayed immediately to avoid delays caused by buffering.</p> <p> <strong>Example: using cerr:</strong> </p> <pre> #include int main() { std::cerr << 'This is an error message.' << std::endl; return 0; } </pre> <p> <strong>Output</strong> </p> <pre> This is an error message. </pre> <h3>buffered standard error stream (clog):</h3> <p>clog stands for <strong> <em>'standard log'</em> </strong> . It is a buffered stream, similar to cout. It's often used for writing informational or diagnostic messages that are less time-sensitive than errors. The use of buffering can improve performance when displaying a large number of messages.</p> <p> <strong>Example: using clog</strong> </p> <pre> #include int main() { std::clog << 'This is an informational message.' << std::endl; return 0; } </pre> <p> <strong>Output</strong> </p> <pre> This is an informational message. </pre> <p>In both examples, the output will appear on the console. However, the main difference between <strong> <em>cerr</em> </strong> and <strong> <em>clog</em> </strong> lies in their buffering behavior. Due to its unbuffered nature, messages given to <strong> <em>cerr</em> </strong> are displayed right away, but messages sent to clog may be buffered for greater speed. However, they will still eventually appear on the console.</p> <h4>Note: It is important to remember that the type of message you wish to display will determine whether you use cerr or clog. Use cerr for essential messages that need immediate attention (like error messages) and use clog for less critical diagnostic or informational messages that can be buffered for better performance.</h4> <hr></endl;>
Štandardný chybový stream bez vyrovnávacej pamäte (cerr):
cerr znamenať 'štandardná chyba' .
Je to stream bez vyrovnávacej pamäte, čo znamená, že výstup odoslaný do cerr sa okamžite zobrazí na konzole bez ukladania do vyrovnávacej pamäte.
Zvyčajne sa používa na zobrazovanie chybových správ a diagnostických informácií, ktoré je potrebné zobraziť okamžite, aby sa predišlo oneskoreniam spôsobeným ukladaním do vyrovnávacej pamäte.
Príklad: pomocou cerr:
#include int main() { std::cerr << 'This is an error message.' << std::endl; return 0; }
Výkon
This is an error message.
štandardný chybový tok s vyrovnávacou pamäťou (upchatie):
Clog znamená 'štandardný denník' . Je to bufferovaný prúd, podobný cout. Často sa používa na písanie informačných alebo diagnostických správ, ktoré sú menej časovo citlivé ako chyby. Použitie vyrovnávacej pamäte môže zlepšiť výkon pri zobrazovaní veľkého počtu správ.
Príklad: pomocou upchávky
#include int main() { std::clog << 'This is an informational message.' << std::endl; return 0; }
Výkon
This is an informational message.
V oboch príkladoch sa výstup zobrazí na konzole. Avšak, hlavný rozdiel medzi cerr a upchať spočíva v ich vyrovnávacom správaní. Vzhľadom na jeho nebuffered povahu, správy dané cerr sa zobrazia okamžite, ale správy odoslané na upchatie môžu byť pre vyššiu rýchlosť uložené do vyrovnávacej pamäte. Na konzole sa však nakoniec predsa len objavia.
Poznámka: Je dôležité si zapamätať, že typ správy, ktorú chcete zobraziť, určí, či použijete cerr alebo clog. Použite cerr pre dôležité správy, ktoré si vyžadujú okamžitú pozornosť (napríklad chybové správy) a použite clog pre menej kritické diagnostické alebo informačné správy, ktoré možno uložiť do vyrovnávacej pamäte pre lepší výkon.
)>