Ц++ И/О операција користи концепт тока. Серија бајтова или ток података се назива ток. Убрзава перформансе.
Ако се бајтови преносе из главне меморије на уређај као што је штампач, екран, мрежна веза, итд. ово се зове излазна операција.
Операција уноса се дешава када бајтови теку са уређаја као што је штампач, екран или мрежна веза у главну меморију.
У Ц++, унапред дефинисане функције а декларације се пружају кроз датотеке заглавља, омогућавајући вам да обављате одређене задатке без потребе да пишете нови код од почетка. Неколико важних датотека заглавља за улазно/излазне операције у Ц++-у укључују функције за ефикасно извршавање задатака за унос и излаз. Стандардна библиотека Ц++, колекција класа и метода креираних у програмском језику Ц++, садржи ове датотеке заглавља. Хајде да разговарамо о главним датотекама заглавља за улазно/излазне операције:
Хеадер Филе | Функција и опис |
---|---|
Користи се за дефинисање цоут, цин и церр објеката, који одговарају стандардном излазном току, стандардном улазном току и стандардном току грешака, респективно. | |
Користи се за декларисање услуга корисним за извођење форматираног И/О-а, као нпр сетпрецисион и сетв. | |
Користи се за декларисање услуга за обраду датотека коју контролише корисник. |
иостреам: То је једна од најважнијих датотека заглавља за улазно/излазне операције у Ц++. Важи за 'улаз излаз' поток. За рад са различитим облицима улазних/излазних токова, иостреам датотека заглавља укључује класе истреам (улазни ток) и остреам (излазни ток) као и његове изведене класе ифстреам, офстреам , и стрингстреам . Најчешће коришћене класе ове датотеке заглавља су цин (стандардни улаз) и цоут (стандардни излаз) , који вам омогућавају да читате кориснички унос и прикажете излаз на конзоли. На пример:
#include using namespace std; int main() { int num; cout <> num; cout << 'You entered: ' << num << endl; return 0; }
Излаз
Enter a number: 42 You entered: 42
иоманип: Ова датотека заглавља је скраћеница за 'улаз-излаз манипулација' . Пружа алате за форматирање улазни и излаз . Омогућава вам да измените поравнање, ширина, прецизност , и друге функције форматирања улаза и излаза. Сетв, сетпрецисион, фиксно, лево, десно , и друге функције које се редовно користе наведене су у наставку. Посебно је згодан за презентовање података на одређени начин.
Пример:
#include #include using namespace std; int main() { double pi = 3.14159; cout << fixed << setprecision(2) << 'Value of pi: ' << pi << endl; return 0; }
Излаз
бтрее и б дрво
Value of pi: 3.14
ток: Позива се датотека заглавља за операције уноса/излаза датотеке фстреам . Састоји се од класа за читање и писање у датотеке ифстреам (ток улазне датотеке) и офстреам (ток излазне датотеке) . Систем користи ове класе за отварање датотека само за читање и само за писање.
Пример:
#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; }
Излаз
The file was written successfully.
Ове датотеке заглавља су међу најважнијим за Ц++ улазне/излазне задатке. Сваки од њих има специфичну сврху и нуди алате неопходне за успешно управљање задацима који укључују улаз и излаз, било да је у интеракцији са конзола, форматирање излаза , или рад са датотекама.
У Ц++ често користимо 'усинг намеспаце стд;' после датотека заглавља. Тхе намеспаце стд; изјава се често користи у Ц++-у за поједностављење кода при раду са стандардним компонентама библиотеке. Хајде да детаљније испитамо функцију и примену ове изјаве:
А именског простора је техника за груписање сличних идентификатора (као нпр класе, функције , и Променљиве ) за спречавање сукоба имена. Стандардна библиотека Ц++ обезбеђује своје делове (као што су цин, цоут, итд.) у оквиру стд именског простора.
Термин 'стандард' се скраћује на 'стд' , и сви елементи стандардне библиотеке су садржани у њему. Овим се смањују сукоби имена са идентификаторима постављеним у вашем коду.
Хајде сада да разговарамо о томе зашто се користи именски простор стд; изјава се користи:
Без коришћења стд простора имена:
#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; }
Као што видите, коришћењем намеспаце стд; изјава вам омогућава да изоставите стд:: префикс приликом приступа стандардним компонентама библиотеке. То чини ваш код краћим и читљивијим, јер не морате да понављате стд:: пре сваког идентификатора стандардне библиотеке.
Датотеке заглавља И/О библиотеке
Стандардни излазни ток (цоут):
Цоут објекат је унапред дефинисан објекат класе остреам. Повезан је са стандардним излазним уређајем, који је обично екран. Цоут се користи у комбинацији са оператором уметања тока (<<) to show the output on a console< p>
Хајде да видимо једноставан пример стандардног излазног тока (цоут):
#include using namespace std; int main( ) { char ary[] = 'Welcome to C++ tutorial'; cout << 'Value of ary is: ' << ary << endl; }
Излаз
Value of ary is: Welcome to C++ tutorial
Стандардни улазни ток (цин)
Тхе једење је унапред дефинисани објекат од поток класа. Повезан је са стандардним улазним уређајем, који је обично тастатура. Цин се користи заједно са оператором екстракције тока (>>) за читање уноса са конзоле.
Хајде да видимо једноставан пример стандардног улазног тока (цин):
#include using namespace std; int main( ) { int age; cout <> age; cout << 'Your age is: ' << age << endl; }
Излаз
Enter your age: 22 Your age is: 22
Стандардна крајња линија (ендл)
Тхе ендл је унапред дефинисани објекат од наш непријатељ класа. Користи се за уметање знакова новог реда и испирање тока.
Хајде да видимо једноставан пример стандардне крајње линије (ендл):
#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;>
Стандардни ток грешака без баферовања (церр):
церр означава 'Стандардна грешка' .
То је небаферовани ток, што значи да се излаз шаље на церр се одмах приказује на конзоли без баферовања.
Обично се користи за приказивање порука о грешци и дијагностичких информација, које треба одмах приказати да би се избегла кашњења узрокована баферовањем.
Пример: користећи церр:
#include int main() { std::cerr << 'This is an error message.' << std::endl; return 0; }
Излаз
This is an error message.
баферовани ток стандардних грешака (зачепљење):
кломпа означава 'стандардни дневник' . То је баферовани ток, сличан цоут-у. Често се користи за писање информативних или дијагностичких порука које су мање осетљиве на време од грешака. Употреба баферовања може побољшати перформансе при приказивању великог броја порука.
Пример: коришћење зачепљења
#include int main() { std::clog << 'This is an informational message.' << std::endl; return 0; }
Излаз
This is an informational message.
У оба примера, излаз ће се појавити на конзоли. Међутим, главна разлика између церр и зачепити се лежи у њиховом пуферском понашању. Због своје небаферисане природе, поруке дате на церр се приказују одмах, али поруке послате на цлог могу бити бафероване ради веће брзине. Међутим, они ће се на крају ипак појавити на конзоли.
Напомена: Важно је запамтити да ће тип поруке коју желите да прикажете одредити да ли користите церр или цлог. Користите церр за основне поруке којима је потребна хитна пажња (као што су поруке о грешци) и користите цлог за мање критичне дијагностичке или информативне поруке које се могу баферовати за боље перформансе.
)>