logo

Osnovni vhod in izhod C++ (V/I)

V/I operacija C++ uporablja koncept toka. Niz bajtov ali tok podatkov se imenuje tok. Pospešuje delovanje.

Če se bajti prenesejo iz glavnega pomnilnika v napravo, kot je tiskalnik, zaslon, omrežna povezava itd., se to imenuje izhodna operacija.

Do vnosne operacije pride, ko bajti tečejo iz naprave, kot je tiskalnik, zaslon ali omrežna povezava, v glavni pomnilnik.

V C++, vnaprej določene funkcije deklaracije pa so na voljo prek datotek z glavami, kar vam omogoča, da opravite določena opravila, ne da bi morali od začetka pisati novo kodo. Nekaj ​​pomembnih datotek glave za vhodno/izhodne operacije v C++ vključuje funkcije za učinkovito izvajanje vhodnih in izhodnih nalog. Standardna knjižnica C++, zbirka razredov in metod, ustvarjenih v programskem jeziku C++, vsebuje te datoteke glave. Razpravljajmo o glavnih datotekah glave za vhodno/izhodne operacije:

Datoteka glave Funkcija in opis
Uporablja se za opredelitev cout, cin in cerr objektov, ki ustrezajo standardnemu izhodnemu toku, standardnemu vhodnemu toku oziroma standardnemu toku napak.
Uporablja se za razglasitev storitev, uporabnih za izvajanje formatiranega V/I, kot je npr setprecision in setw.
Uporablja se za deklariranje storitev za uporabniško nadzorovano obdelavo datotek.

iostream: Je ena najpomembnejših datotek glave za vhodno/izhodne operacije v C++. To pomeni 'vhod-izhod' tok. Za delo z različnimi oblikami vhodnih/izhodnih tokov je iostream glava datoteke vključuje razrede istream (vhodni tok) in ostream (izhodni tok) kot tudi njegove izpeljane razrede ifstream, ofstream , in stringstream . Najpogosteje uporabljeni razredi te datoteke glave so cin (standardni vnos) in cout (standardni izhod) , ki vam omogočajo branje uporabniškega vnosa in prikaz izhoda na konzoli. Na primer:

 #include using namespace std; int main() { int num; cout <> num; cout << 'You entered: ' << num << endl; return 0; } 

Izhod

 Enter a number: 42 You entered: 42 

iomanip: Ta glava datoteke pomeni 'vhodno-izhodna manipulacija' . Ponuja orodja za formatiranje vnos in izhod . Omogoča vam spreminjanje poravnava, širina, natančnost in druge funkcije oblikovanja vhoda in izhoda. Setw, setprecision, fiksno, levo, desno , in druge redno uporabljene funkcije so navedene spodaj. Še posebej je priročen za predstavitev podatkov na določen način.

primer:

 #include #include using namespace std; int main() { double pi = 3.14159; cout << fixed << setprecision(2) << 'Value of pi: ' << pi << endl; return 0; } 

Izhod

sql izberite iz več tabel
 Value of pi: 3.14 

tok: Pokliče se glava datoteke za vhodno/izhodne operacije datoteke fstream . Vsebuje razrede za branje iz datotek in pisanje vanje ifstream (tok vhodne datoteke) in ofstream (tok izhodne datoteke) . Sistem uporablja te razrede za odpiranje datotek samo za branje in samo za pisanje.

primer:

 #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; } 

Izhod

 The file was written successfully. 

Te datoteke glave so med najbolj ključnimi za vhodno/izhodne naloge C++. Vsak ima poseben namen in ponuja orodja, potrebna za uspešno upravljanje nalog, ki vključujejo vnos in izhod, ne glede na to, ali gre za interakcijo z konzola, formatiranje izhoda , ali delo z datotekami.

V C++ pogosto uporabljamo 'using namespace std;' za datotekami glave. The imenski prostor std; Stavek se pogosto uporablja v C++ za racionalizacijo kode pri delu s komponentami standardne knjižnice. Oglejmo si podrobneje funkcijo in uporabo te izjave:

A imenski prostor je tehnika za združevanje podobnih identifikatorjev (kot npr razredi, funkcije , in spremenljivke ), da preprečite spore pri poimenovanju. Standardna knjižnica C++ ponuja svoje dele (kot so cin, cout itd.) pod imenskim prostorom std.

Izraz 'standard' je skrajšan na 'std' in vse elemente standardne knjižnice vsebuje. S tem se zmanjšajo konflikti imen z identifikatorji, nastavljenimi v vaši kodi.

Zdaj pa se pogovorimo o tem, zakaj uporaba imenskega prostora std; izjava se uporablja:

Brez uporabe imenskega prostora 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; } 

Kot lahko vidite, z uporabo imenski prostor std; izjava vam omogoča, da izpustite std:: predpona pri dostopu do komponent standardne knjižnice. Zaradi tega je vaša koda krajša in bolj berljiva, saj vam ni treba ponavljati std:: pred vsakim standardnim identifikatorjem knjižnice.

Datoteke glave knjižnice I/O

Standardni izhodni tok (cout):

Objekt cout je vnaprej določen objekt razreda ostream. Povezan je s standardno izhodno napravo, ki je običajno zaslon. Cout se uporablja v kombinaciji z operatorjem za vstavljanje toka (<<) to show the output on a console< p>

Oglejmo si preprost primer standardnega izhodnega toka (cout):

 #include using namespace std; int main( ) { char ary[] = &apos;Welcome to C++ tutorial&apos;; cout &lt;&lt; &apos;Value of ary is: &apos; &lt;&lt; ary &lt;&lt; endl; } 

Izhod

 Value of ary is: Welcome to C++ tutorial 

Standardni vhodni tok (cin)

The prehranjevanje je vnaprej določen predmet tok razred. Povezan je s standardno vhodno napravo, ki je običajno tipkovnica. Cin se uporablja v povezavi z operatorjem ekstrakcije toka (>>) za branje vnosa s konzole.

Oglejmo si preprost primer standardnega vhodnega toka (cin):

 #include using namespace std; int main( ) { int age; cout &lt;&gt; age; cout &lt;&lt; &apos;Your age is: &apos; &lt;&lt; age &lt;&lt; endl; } 

Izhod

 Enter your age: 22 Your age is: 22 

Standardna končna črta (endl)

The konec je vnaprej določen predmet naš sovražnik razred. Uporablja se za vstavljanje znakov nove vrstice in izpiranje toka.

Oglejmo si preprost primer standardne končne vrstice (endl):

 #include using namespace std; int main( ) { cout &lt;&lt; &apos;C++ Tutorial&apos;; cout &lt;&lt; &apos; Javatpoint&apos;&lt;<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>&apos;standard error&apos;</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 &lt;&lt; &apos;This is an error message.&apos; &lt;&lt; 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>&apos;standard log&apos;</em> </strong> . It is a buffered stream, similar to cout. It&apos;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 &lt;&lt; &apos;This is an informational message.&apos; &lt;&lt; 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;>

Standardni tok napak brez medpomnjenja (cerr):

cerr pomeni 'standardna napaka' .

To je tok brez medpomnjenja, kar pomeni, da je izhod poslan v cerr se takoj prikaže na konzoli brez medpomnjenja.

Običajno se uporablja za prikaz sporočil o napakah in diagnostičnih informacij, ki jih je treba prikazati takoj, da se izognemo zamudam, ki jih povzroča medpomnjenje.

Primer: z uporabo cerr:

 #include int main() { std::cerr &lt;&lt; &apos;This is an error message.&apos; &lt;&lt; std::endl; return 0; } 

Izhod

 This is an error message. 

vmesni standardni tok napak (zamašitev):

zamašek pomeni 'standardni dnevnik' . To je medpomnilniški tok, podoben cout. Pogosto se uporablja za pisanje informativnih ali diagnostičnih sporočil, ki so časovno manj občutljiva kot napake. Uporaba medpomnjenja lahko izboljša zmogljivost pri prikazovanju velikega števila sporočil.

Primer: uporaba zamašitve

 #include int main() { std::clog &lt;&lt; &apos;This is an informational message.&apos; &lt;&lt; std::endl; return 0; } 

Izhod

 This is an informational message. 

V obeh primerih se bo rezultat prikazal na konzoli. Vendar pa je glavna razlika med cerr in zamašiti leži v njihovem medpomnjenju. Zaradi svoje narave brez medpomnjenja so sporočila, dana do cerr se prikažejo takoj, vendar so sporočila, poslana v zamašitev, morda shranjena v medpomnilnik za večjo hitrost. Vendar se bodo sčasoma vseeno pojavili na konzoli.

Opomba: Pomembno si je zapomniti, da vrsta sporočila, ki ga želite prikazati, določa, ali uporabljate cerr ali clog. Uporabite cerr za bistvena sporočila, ki zahtevajo takojšnjo pozornost (kot so sporočila o napakah), in uporabite clog za manj kritična diagnostična ali informativna sporočila, ki jih je mogoče shraniti v medpomnilnik za boljše delovanje.