Ç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ëåå.
Do'stlaringiz bilan baham: |