Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»



Download 2 Mb.
bet155/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   151   152   153   154   155   156   157   158   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

Стандартные потоки


Çaãîëîâî÷íûé ôaéë ñîäåðæèò, êðîìå îïèñaíèя êëaññîâ äëя ââîäa/âû- âîäa, ÷åòûðå ïðåäîïðåäåëåííûõ îáúåêòa.



Объект

Класс

Описание

Cin

istream

Câяçûâaåòñя ñ êëaâèaòóðîé (ñòaíäaðòíûì áóôåðèçîâaííûì ââîäîì)

COut

Ostream

Câяçûâaåòñя ñ ýêðaíîì (ñòaíäaðòíûì áóôåðèçîâaííûì âûâîäîì)

Cerr

Ostream

Câяçûâaåòñя ñ ýêðaíîì (ñòaíäaðòíûì íåáóôåðèçîâaííûì âûâîäîì), êóäa íaïðaâëяþòñя ñîîáùåíèя îá îøèáêaõ

ClOg

Ostream

Câяçûâaåòñя ñ ýêðaíîì (ñòaíäaðòíûì áóôåðèçîâaííûì âûâîäîì), êóäa íaïðaâëяþòñя ñîîáùåíèя îá îøèáêaõ

Ýòè îáúåêòû ñîçäaþòñя ïðè âêëþ÷åíèè ñ ïðîãðaììó çaãîëîâî÷íîãî ôaéëa


, ïðè ýòîì ñòaíîâяòñя äîñòóïíûìè ñâяçaííûå ñ íèìè ñðåäñòâa ââî- äa/âûâîäa. Èìåía ýòèõ îáúåêòîâ ìîæíî ïåðåíaçía÷èòü ía äðóãèå ôaéëû èëè ñèìâîëüíûå áóôåðû.
 êëaññaõ istream è Ostream îïåðaöèè èçâëå÷åíèя èç ïîòîna >> è ïîìåùåíèя â ïî- òîn << îïðåäåëåíû ïóòåì ïåðåãðóçêè îïåðaöèé ñäâèãa. Ïðèìåð:
inClude int main(){
int i;
Cin >> i;
COut << "Âû ââåëè " << i; return 0;
}
Îïåðaöèè èçâëå÷åíèя è ÷òåíèя â êa÷åñòâå ðåçóëüòaòa ñâîåãî âûïîëíåíèя ôîðìè- ðóþò ññûëêó ía îáúåêò òèïa istream äëя èçâëå÷åíèя è ññûëêó ía Ostream — äëя
÷òåíèя. Ýòî ïîçâîëяåò ôîðìèðîâaòü öåïî÷êè îïåðaöèé, ÷òî ïðîèëëþñòðèðîâaíî ïîñëåäíèì îïåðaòîðîì ïðèâåäåííîãî ïðèìåða. Âûâîä ïðè ýòîì âûïîëíяåòñя ñëå- âa íaïðaâî.
Êaê è äëя äðóãèõ ïåðåãðóæåííûõ îïåðaöèé, äëя âñòaâêè è èçâëå÷åíèя íåâîçìîæ- íî èçìåíèòü ïðèîðèòåòû, ïîýòîìó â íåîáõîäèìûõ ñëó÷aяõ èñïîëüçóþòñя ñêîáêè:
// Cêîáêè íå òðåáóþòñя — ïðèîðèòåò ñëîzåíèя áîëüøå, ÷åì << : COut <// Cêîáêè íåîáõîäèìû — ïðèîðèòåò îïåðaöèè îòíîøåíèя ìåíüøå, ÷åì << : COut << (i < j);
COut << (i << j); // Ïðaâaя îïåðaöèя << îçía÷aåò ñäâèã
Âåëè÷èíû ïðè ââîäå äîëæíû ðaçäåëяòüñя ïðîáåëüíûìè ñèìâîëaìè (ïðîáåëaìè, çíaêaìè òaáóëяöèè èëè ïåðåâîäa ñòðîêè). Èçâëå÷åíèå ïðåêðaùaåòñя, åñëè î÷å- ðåäíîé ñèìâîë îêaçaëñя íåäîïóñòèìûì.

Åñëè â îïåðaöèè ïîìåùåíèя â ïîòîê âñòðå÷aåòñя âûðaæåíèå, èçìåíяþùåå íå- êîòîðóþ ïåðåìåííóþ, òî îía íå äîëæía ïðèñóòñòâîâaòü â öåïî÷êå îïåðaöèé áî- ëåå îäíîãî ðaça, ïîñêîëüêó â òaêîì ñëó÷aå ðåçóëüòaò ìîæåò çaâèñåòü îò ðåaëèça- öèè êîìïèëяòîða.


Îïåðaöèè << è >> ïåðåãðóæåíû äëя âñåõ âñòðîåííûõ òèïîâ äaííûõ, ÷òî ïîçâîëяåò aâòîìaòè÷åñêè âûïîëíяòü ââîä è âûâîä â ñîîòâåòñòâèè ñ òèïîì âåëè÷èí. Ýòî îçía÷aåò, ÷òî ïðè ââîäå ïîñëåäîâaòåëüíîñòü ñèìâîëîâ ïðåîáðaçóåòñя âî âíóòðåí- íåå ïðåäñòaâëåíèå âåëè÷èíû, ñòîяùåé ñïðaâa îò çíaêa èçâëå÷åíèя, a ïðè âûâîäå âûïîëíяåòñя îáðaòíîå ïðåîáðaçîâaíèå, íaïðèìåð:
inClude int main(){
int i = 0xD; dOuble d;
// Cèìâîëû èç ïîòîêa ââîäa ïðåîáðaçóþòñя â dOuble: Cin >> d;
// int è dOuble ïðåîáðaçóþòñя â ñòðîêó ñèìâîëîâ: COut << i << ' ' << d;
return 0;
}
Ðaññìîòðèì, êaê îáðaáaòûâaþòñя ñ ïîìîùüþ ýòèõ îïåðaöèé äaííûå ðaçëè÷íûõ òèïîâ.
×èñëîâûå çía÷åíèя ìîæíî ââîäèòü â äåñяòè÷íîé èëè øåñòíaäöaòåðè÷íîé ñèñòåìå ñ÷èñëåíèя (ñ ïðåôèêñîì 0x) ñî çíaêîì èëè áåç çíaêa. Âåùåñòâåííûå ÷èñëa ïðåä- ñòaâëяþòñя â ôîðìå ñ ôèêñèðîâaííîé òî÷êîé èëè ñ ïîðяäêîì. Íaïðèìåð, åñëè äëя ïðåäûäóùåãî ïðèìåða ñ êëaâèaòóðû ââîäèòñя ïîñëåäîâaòåëüíîñòü ñèìâîëîâ 1.53e–2, îía èíòåðïðåòèðóåòñя êaê âåùåñòâåííîå ÷èñëî ñ ïîðяäêîì è ïðåîáðaçó- åòñя âî âíóòðåííåå ïðåäñòaâëåíèå, ñîîòâåòñòâóþùåå òèïó dOuble. Ïðè âûâîäå âû- ïîëíяåòñя îáðaòíîå ïðåîáðaçîâaíèå, è ía ýêðaí âûâîäяòñя ñèìâîëû:
13 0.0153
Ïîñêîëüêó ââîä áóôåðèçîâaí, ïîìåùåíèå â áóôåð ââîäa ïðîèñõîäèò ïîñëå íaæa- òèя êëaâèøè ïåðåâîäa ñòðîêè, ïîñëå ÷åãî èç áóôåða âûïîëíяåòñя îïåðaöèя èç- âëå÷åíèя èç ïîòîêa. Ýòî äaåò âîçìîæíîñòü èñïðaâëяòü ââåäåííûå ñèìâîëû äî òîãî, êaê íaæaòa êëaâèøa Enter.
Ïðè ââîäå ñòðîn èçâëå÷åíèå ïðîèñõîäèò äî áëèæaéøåãî ïðîáåëa (âìåñòî íåãî â ñòðîêó çaíîñèòñя íóëü-ñèìâîë):
Char str1[100], str2[100]; Cin >> str1 >> str2;
Åñëè ñ êëaâèaòóðû ââîäèòñя ñòðîêa "ðaç äâa òðè ÷åòûðå ïяòü", ïåðåìåííûå str1 è str2 ïðèìóò çía÷åíèя "ðaç" è "äâa" ñîîòâåòñòâåííî, a îñòaòîê ñòðîêè âîñïðèíяò íå áóäåò. Ïðè íåîáõîäèìîñòè ââåñòè èç âõîäíîãî ïîòîêa ñòðîêó öåëèêîì (äî ñèì- âîëa '\n') ïîëüçóþòñя ìåòîäaìè get èëè getline (ñì. ñ. 273).
Çía÷åíèя ónaçaòåëåñ âûâîäяòñя â øåñòíaäöaòåðè÷íîé ñèñòåìå ñ÷èñëåíèя. Ïîä ëþ- áóþ âåëè÷èíó ïðè âûâîäå îòâîäèòñя ñòîëüêî ïîçèöèé, ñêîëüêî òðåáóåòñя äëя åå ïðåäñòaâëåíèя. ×òîáû îòäåëèòü îäíó âåëè÷èíó îò äðóãîé, èñïîëüçóþòñя ïðîáåëû:
COut << i << ' ' << d << " " << j;

Åñëè ôîðìaò âûâîäa, èñïîëüçóåìûé ïî óìîë÷aíèþ, íå óñòðaèâaåò ïðîãðaììèñòa, îí ìîæåò ñêîððåêòèðîâaòü åãî ñ ïîìîùüþ ìåòîäîâ êëaññîâ ââîäa/âûâîäa, ôëaãîâ ôîðìaòèðîâaíèя è òaê íaçûâaåìûõ ìaíèïóëяòîðîâ. Îá ýòîì ðaññêaçûâaåòñя äaëåå.





Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   151   152   153   154   155   156   157   158   ...   232




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish