«cout — это объект потока вывода, который подключен к стандартному устройству вывода процесса, часто к терминалу, с которого запускается программа», — так говорит моя книга. Просто любопытно следующее:
Есть ли случай, когда cout сделан для подключения к любым другим устройствам вывода, например, к принтеру? Или это все равно, что cout относится к монитору и cin к клавиатуре все время.
cin
является стандартным вводом, и хотя большинство систем получают ввод с клавиатуры, в этом нет необходимости. cout
это стандартный вывод, большинство систем снова имеют стандартный вывод (стандартный вывод) для консоли. Но вы можете перенаправить его.
Например, в файл:
std::ofstream file;
file.open ("test.txt"); // open file
std::streambuf *orig_out = std::cout.rdbuf(); // save cout
std::streambuf *buf = file.rdbuf(); // get file's streambuf
std::cout.rdbuf(buf); // redirect cout to file
std::cout << "This is written to the file";
std::cout.rdbuf(orig_out); // restore cout's original output
file.close(); // close file
Краткий ответ — «да». Cout это просто выходной поток. В Unix вы можете создать конвейер
command1 | command2
Стандартный вывод команды 1 переходит к стандартному вводу команды 2, т. Е. Не к монитору и клавиатуре.
stdout (и, следовательно, cout) также может быть перенаправлен:
command > some_file_or_device.
Да.
cin и cout — это iostreams, они являются стандартными, но они также нормальные, то есть вы можете закрыть stdin и stdout и снова открыть какое-то другое устройство как stdin или out.