Основни улаз / излаз Ц ++: пример Цоут, Цин, Церр

Преглед садржаја:

Anonim

Шта су токови у Ц ++?

Ц ++ пружа корисницима низ библиотека које могу користити за извршавање задатака уноса / излаза. Ови задаци се раде у облику секвенци бајтова, популарно названих токовима.

Потоци су подељени на два дела:

Врсте потока

  • Улазни ток: Ово је врста тока где бајтови прелазе са уређаја као што је тастатура у главну меморију.
  • Излазни ток: Ово је врста тока где бајтови теку у супротном смеру, то јест, из главне меморије, а затим у уређај, као што је екран приказа.

У овом водичу за Ц ++ научићете:

  • Шта су токови у Ц ++?
  • Како токови функционишу?
  • Табела функција
  • Ц ++ датотеке заглавља за улаз / излаз
  • стд :: цоут
  • стд :: цин
  • стд :: церр
  • стд :: цлог
  • Руковање грешкама са ИО токовима:

Како токови функционишу?

Ц ++ токови раде на следећи начин:

  1. Прво се ток иницијализује правим типом.
  2. Даље, требало би да наведете где ће се И / О појавити помоћу показивача гет / пут.
  3. Након доласка на право место у току, можете извршавати задатке уноса и излаза помоћу оператора >> и <<, респективно.

Табела функција

Следе функције које су дате у заглавној датотеци стреам.х:

Класа Функције
Филебуф Поставља међуспремнике датотека за читање / писање. У себи има функције цлосе () и опен ()
фстреамбасе То је основна класа за класе ифстреам, фстреам и офстреам. Његове операције су заједничке за токове датотека.
ако ток То је класа тока улазне датотеке за пружање операција уноса.
офстреам То је класа тока излазних датотека за пружање излазних операција.
фстреам То је класа улазно / излазног тока. Подржава истовремене улазно / излазне операције.

Ц ++ датотеке заглавља за улаз / излаз

Ц ++ пружа три библиотеке које имају функције за обављање основних задатака уноса / излаза. То укључује:

  • Иостреам: То је скраћеница за стандардни улазно / излазни ток. Ова датотека заглавља долази са дефиницијама за објекте попут цин / цоут / церр.
  • Иоманип: Скраћеница за улазно / излазне манипулаторе. Библиотека долази са функцијама које се могу користити за манипулацију токовима. Садржи дефиниције за објекте као што су сетв, сетпрецисион и други.
  • Фстреам: Ово је датотека заглавља за опис тока датотека. Обрађује податке који се читају из датотеке као улаз или који се записују у датотеку, као излаз.

Кључне речи цин и цоут су веома популарне у језику Ц ++. Користе се за узимање улаза, односно за штампање излаза. Да бисте их користили, у свој програм морате укључити заглавну датотеку иостреам. Разлог је тај што су дефинисани у тој датотеци заглавља. Ако не укључите датотеку заглавља иостреам, генерисаће грешку. Ово је резултат неуспеха компајлера за Ц ++ да разуме значење кључних речи.

Главни објекти дефинисани у датотеци заглавља иостреам су цин, цоут, церр и цлог. Хајде да разговарамо о њима.

стд :: цоут

Објект цоут је инстанца класе иостреам. Користи се за производњу излаза на стандардном излазном уређају, а то је обично екран. Користи се заједно са оператором за уметање тока (<<).

Пример:

#include using namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите датотеку заглавља иостреам где је дефинисан објект цоут.
  2. Укључите стд простор имена да га не бисмо морали позивати када користимо његове класе.
  3. Позовите главну () функцију. Програмски код треба додати унутар његовог тела. Отварајућа коврџава заграда {означава почетак њеног тела.
  4. Направите променљиву карактера под називом добродошли да бисте држали низ Добродошли у Гуру99.
  5. Испишите вредност добродошлице низа на конзоли. Ендл је кључна реч Ц ++ која значи крајњи ред. Помера курсор да започне штампање текста у следећем реду.
  6. Програм мора вратити вредност након успешног извршења.
  7. Крај тела функције маин ().

стд :: цин

Цин објекат је инстанца класе истреам. Чита унос са улазног уређаја, тастатуре. Обично се користи заједно са оператором екстракције (>>). Издвајање објекта је одговорно за издвајање података унетих преко тастатуре из цин предмета.

Пример:

Следећи пример показује како се користи кључна реч цин у језику Ц ++:

#include using namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите датотеку заглавља иостреам у наш програм. Цин објекат је дефинисан у овој датотеци заглавља.
  2. Укључите стд простор имена да бисте користили његове класе. Нећете морати да зовете стд када користите његове класе.
  3. Позовите главну () функцију. Програмски код треба додати унутар његовог тела.
  4. Почетак дела програма.
  5. Декларишите целобројну променљиву која се зове број.
  6. Одштампајте поруку на екрану која од корисника тражи да унесе број.
  7. Очитајте вредност коју је корисник унео на конзолу са тастатуре.
  8. Одштампајте горе прочитану вредност на конзоли уз други текст.
  9. Програм би требало да врати вредност ако се успешно изврши.
  10. Крај тела главне функције.

стд :: церр

Објект церр формира стандардни ток грешака за изношење грешака у Ц ++. Церр је инстанца остреам класе. Церр објекат је без бафера. То значи да се користи када се одмах прикаже порука о грешци.

Будући да је небуферисан, не чува поруку о грешци за каснији приказ. Користи се заједно са оператором за уметање тока (<<).

Пример:

#include using namespace std;int main() {cerr << "An Error occurred!";return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључите иостреам датотеку заглавља тамо где је дефинисан церр објекат.
  2. Укључите стд простор имена да га не бисмо морали позивати када користимо његове класе.
  3. Позовите главну () функцију. Програмска логика треба да се дода унутар њеног тела. Отварање коврџаве заграде означава почетак тела функције.
  4. Помоћу објекта церр испишите грешку на конзоли.
  5. Програм мора вратити вредност након успешног извршавања.
  6. Крај тела главне функције.

стд :: цлог

Објекат цлог је инстанца класе остреам. Користи се за приказивање грешака на стандардном екрану, монитору. Сличан је церр објекту, али је баферисан. Будући да је баферован, он чува поруку о грешци у баферу док се ме успремник не напуни / испере. Користи се заједно са оператором за уметање тока (<<).

Пример:

#include using namespace std;int main() {clog << "An Error occurred!";return 0;}

Излаз:

Ево снимка екрана кода:

Објашњење кода:

  1. Укључујући иостреам датотеку заглавља у којој је дефинисан објект зачепљења.
  2. Укључујући и стд простор имена да бисмо могли да користимо његове класе без позивања.
  3. Позивање главне () функције. Програмска логика треба да се дода унутар њеног тела. Ознака {означава почетак тела функције.
  4. Користите објекат зачепљења да бисте исписали грешку на стандардном излазу, монитору.
  5. Програм мора вратити вредност након успешног завршетка.
  6. Крај тела функције маин ().

Руковање грешкама са ИО токовима:

Да бисте проверили да ли је ток важећи или не, можете га користити као логичку вредност.

Ево примера:

ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}

Да бисте добили више детаља о статусу стрима, можете да користите ове функције:

  • гоод () - вратиће се труе ако је све у реду.
  • бад () - вратиће труе ако се догоди фатална грешка.
  • фаил () - вратиће труе након неуспешне операције стрима.
  • еоф () - вратиће труе ако дође до краја датотеке.

Тестирајте резултат читања да бисте знали да ли одређена операција читања / писања није успела.

На пример, да бисте проверили да ли је корисник унео важећи цели број, урадите следеће:

int p;if ( cin >> p ){cout << "Enter valid number" << endl;}

Резиме

  • Улазни и излазни задаци у језику Ц ++ обављају се низом бајтова. Бајтови се називају токови.
  • У улазном току, бајтови прелазе са улазног уређаја попут тастатуре у главну меморију.
  • У излазном току, бајтови из главне меморије затим на излазни уређај попут монитора.
  • Цин објекат је инстанца класе истреам. Чита унос са улазног уређаја попут тастатуре.
  • Цоут објекат је инстанца класе остреам. Даје излаз на излазним уређајима попут монитора.
  • Објекат церр је инстанца класе остреам. Приказује објекте грешака на монитору.
  • Објект цлог је инстанца класе остреам. Приказује поруке о грешкама на излазним уређајима.
  • Објект цлог баферује поруке о грешкама, док церр објект не.