Об'єкт cerr у C ++ є об'єктом класу ostream. Це пов'язано зі стандартним виводом помилок C потоку stderr.
декларація cerr
зовнішній потік cerr;
Це визначається у файлі заголовка "> файл заголовка.
cerr
Об'єкт гарантовано бути ініційовані під час або перед першим об'єктом типу ios_base::Init
побудований. Після cerr
побудови об'єкта вираз ( cerr.flags
& unitbuf
) не дорівнює нулю, що означає, що будь-який вихід, що надсилається цим об'єктам потоку, негайно змивається з операційною системою. Також cerr.tie()
== &cout
тобто cerr.tie()
повертає, &cout
що означає, що cout.flush()
виконується перед будь-якою операцією виводу на cerr.
Символ "c" cerr
означає "символ", а "помилка" означає "помилка", отже, cerr
означає "помилка символу".
cerr
Об'єкт використовується разом з оператором вставки (<<) для того , щоб відобразити потік символів. Загальний синтаксис:
cerr << varName;
або
cerr << "Якийсь рядок";
Оператор вилучення можна використовувати кілька разів із комбінацією змінних, рядків та маніпуляторів (наприклад, endl):
cerr << var1 << «Якийсь рядок» << var2 << endl;
Початківці програмісти на C ++ використовують cout
для відображення помилок за допомогою стандартного виводу для налагодження своїх програм, але завжди є гарною практикою використовувати cerr
для відображення помилок.
Це пов’язано з тим, що замість показу потоку помилок на екрані, ви можете згодом змінити потік помилок, щоб записати помилки у файл.
Приклад: Як працює cerr?
#include #include using namespace std; int main() ( char fileName() = "data.txt"; ifstream infile(fileName); if(infile) cout << infile.rdbuf(); else cerr << "Error while opening the file " << fileName <
When you run the program, the output will be: (if the file could not be opened)
Error while opening the file data.txt