Основни входове / изходи на C ++: Пример Cout, Cin, Cerr

Съдържание:

Anonim

Какво представляват потоците в C ++?

C ++ предоставя на потребителите редица библиотеки, които те могат да използват за изпълнение на задачи за въвеждане / извеждане. Тези задачи се извършват под формата на байтови последователности, популярно наричани потоци.

Потоците са разделени на две:

Видове потоци

  • Входящ поток: Това е вид поток, при който байтовете преминават от устройство като клавиатура към основната памет.
  • Изходен поток: Това е тип поток, при който байтовете текат в обратна посока, т.е.

В този урок за C ++ ще научите:

  • Какво представляват потоците в C ++?
  • Как работят потоците?
  • Таблица на функциите
  • C ++ заглавни файлове за вход / изход
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: clog
  • Обработка на грешки с IO потоци:

Как работят потоците?

C ++ потоците работят както следва:

  1. Първо, потокът се инициализира с правилния тип.
  2. След това трябва да посочите къде ще се случи I / O, като използвате указатели get / put.
  3. След като стигнете до правилното местоположение в поток, можете да изпълнявате задачи за въвеждане и извеждане, използвайки съответно оператори >> и <<.

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

По-долу са функциите, предоставени в заглавния файл stream.h:

Клас Функции
Filebuf Той задава файлови буфери за четене / запис. Той има функции close () и open () в себе си
fstreambase Това е основният клас за класовете ifstream, fstream и ofstream. Неговите операции са общи за файловите потоци.
ifstream Това е клас поток на входен файл за предоставяне на операции по въвеждане.
от течението Това е клас на изходен файлов файл за предоставяне на изходни операции.
fstream Това е клас на входно / изходен поток. Той поддържа едновременни операции по въвеждане / извеждане.

C ++ заглавни файлове за вход / изход

C ++ предоставя три библиотеки, които идват с функции за изпълнение на основни задачи за въвеждане / извеждане. Те включват:

  • Iostream: Това е акроним за стандартен входно / изходен поток. Този заглавен файл идва с дефиниции за обекти като cin / cout / cerr.
  • Iomanip: Това е акроним за входно / изходни манипулатори. Библиотеката се предлага с функции, които могат да се използват за манипулиране на потоци. Той съдържа дефиниции за обекти като setw, setprecision и други.
  • Fstream: Това е заглавен файл за описание на файловия поток. Той обработва данни, които се четат от файл като вход или които се записват във файл, изход.

Ключовите думи cin и cout са много популярни в C ++. Те се използват съответно за вземане на входове и изходи за печат. За да ги използвате, трябва да включите заглавния файл на iostream във вашата програма. Причината е, че те са дефинирани в този заглавен файл. Ако не включите заглавния файл на iostream, ще се генерира грешка. Това е резултат от провала на компилатора на C ++ да разбере значението на ключовите думи.

Основните обекти, дефинирани в заглавния файл на iostream, са cin, cout, cerr и clog. Нека ги обсъдим.

std :: cout

Обектът cout е екземпляр на класа iostream. Използва се за извеждане на изход на стандартно изходно устройство, което обикновено е екранът. Използва се заедно с оператора за вмъкване на поток (<<).

Пример:

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

Изход:

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

Обяснение на кода:

  1. Включете заглавния файл на iostream, където е дефиниран обектът cout.
  2. Включете std пространството от имена, за да не се налага да го извикваме, когато използваме класовете му.
  3. Извикайте функцията main (). Кодът на програмата трябва да бъде добавен в нейното тяло. Отварящата се къдрава скоба {маркира началото на тялото.
  4. Създайте символна променлива на име welcome, за да държите низа Welcome to Guru99.
  5. Отпечатайте стойността на низа за добре дошли на конзолата. Endl е ключова дума C ++, която означава краен ред. Премества курсора, за да започне отпечатването на текст на следващия ред.
  6. Програмата трябва да върне стойност при успешно изпълнение.
  7. Край на тялото на функцията main ().

std :: cin

Обектът cin е екземпляр на класа istream. Той чете въвеждане от въвеждащото устройство, клавиатурата. Обикновено се използва заедно с екстракторния оператор (>>). Обектът за извличане е отговорен за извличане на данни, въведени чрез клавиатурата от cin обекта.

Пример:

Следващият пример демонстрира как да използваме ключовата дума cin в C ++:

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

Изход:

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

Обяснение на кода:

  1. Включете заглавния файл на iostream в нашата програма. Обектът cin е дефиниран в този заглавен файл.
  2. Включете std пространството от имена, за да използвате неговите класове. Няма да се налага да се обаждате на std, когато използвате класовете му.
  3. Извикайте функцията main (). Кодът на програмата трябва да бъде добавен в нейното тяло.
  4. Началото на тялото на програмата.
  5. Декларирайте цяло число променлива с име.
  6. Отпечатайте съобщение на екрана, подканящо потребителя да въведе номер.
  7. Прочетете стойността, въведена от потребителя на конзолата от клавиатурата.
  8. Отпечатайте стойността, прочетена по-горе, на конзолата заедно с друг текст.
  9. Програмата трябва да върне стойност, ако се изпълни успешно.
  10. Край на тялото на основната функция.

std :: cerr

Обектът cerr формира стандартния поток за грешки за извеждане на грешки в C ++. Cerr е екземпляр на клас ostream. Обектът cerr е буфериран. Това означава, че се използва, когато съобщението за грешка трябва да се покаже незабавно.

Тъй като не е буфериран, той не съхранява съобщение за грешка за по-късно показване. Използва се заедно с оператора за вмъкване на поток (<<).

Пример:

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

Изход:

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

Обяснение на кода:

  1. Включете заглавния файл на iostream, където е дефиниран обектът cerr.
  2. Включете std пространството от имена, за да не се налага да го извикваме, когато използваме класовете му.
  3. Извикайте функцията main (). Логиката на програмата трябва да бъде добавена в нейното тяло. Отварящата се къдрава скоба бележи началото на тялото на функцията.
  4. Използвайте обекта cerr, за да отпечатате грешка на конзолата.
  5. Програмата трябва да върне стойност при успешно изпълнение.
  6. Край на тялото на основната функция.

std :: clog

Обектът clog е екземпляр на класа ostream. Използва се за показване на грешки на стандартния дисплей, монитора. Подобен е на обекта cerr, но е буфериран. Тъй като е буфериран, той съхранява съобщението за грешка в буфера, докато буферът се запълни / измие. Използва се заедно с оператора за вмъкване на поток (<<).

Пример:

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

Изход:

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

Обяснение на кода:

  1. Включително заглавния файл на iostream, в който е дефиниран обектът clog.
  2. Включително std пространство от имена, за да можем да използваме класовете му, без да го извикваме.
  3. Извикване на функцията main (). Логиката на програмата трябва да бъде добавена в нейното тяло. {Отбелязва началото на тялото на функцията.
  4. Използвайте обекта за запушване, за да отпечатате грешка на стандартния изход, монитора.
  5. Програмата трябва да върне стойност при успешно завършване.
  6. Краят на тялото на функцията main ().

Обработка на грешки с IO потоци:

За да проверите дали потокът е валиден или не, можете да го използвате като булева.

Ето пример:

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

За да получите повече подробности за състоянието на потока, можете да използвате следните функции:

  • good () - ще се върне true, ако всичко е наред.
  • bad () - ще върне true, ако възникне фатална грешка.
  • fail () - ще върне true след неуспешна операция на потока.
  • eof () - ще върне true, ако достигне края на файл.

За да разберете дали дадена операция за четене / запис е неуспешна, тествайте резултата от четенето.

Например, за да проверите дали потребителят е въвел валидно цяло число, направете това:

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

Обобщение

  • Задачите за въвеждане и извеждане в C ++ се извършват чрез байтова последователност. Байтовете се наричат ​​потоци.
  • Във входния поток байтовете преминават от входното устройство като клавиатура към основната памет.
  • В изходен поток байтовете от основната памет след това към изходно устройство като монитор.
  • Обектът cin е екземпляр на класа istream. Чете въвеждане от входно устройство като клавиатурата.
  • Обектът cout е екземпляр на класа ostream. Той произвежда изход на изходни устройства като монитора.
  • Обектът cerr е екземпляр на клас ostream. Той показва обекти с грешки на монитора.
  • Обектът clog е екземпляр на класа ostream. Той показва съобщения за грешки на изходните устройства.
  • Обектът clog буферира съобщения за грешка, докато cerr обектът не.