Что означает «с» в cout, cin, cerr и clog? - PullRequest
46 голосов
/ 14 февраля 2010

Что означает "c" в именах cout, cin, cerr и clog?

Я бы сказал char, но я не нашел ничего, чтобы это подтвердить.

Ответы [ 3 ]

72 голосов
/ 14 февраля 2010

"c" означает "символ", потому что iostreams отображает значения в и из байтовых (char) представлений. [ Часто задаваемые вопросы по стилю и технике C ++ Бьярна Страуструпа ]

24 голосов
/ 14 февраля 2010

Я изначально догадался консоль , и эта ссылка подтвердила это. Но после просмотра цитаты из Страуструпа кажется, что это заблуждение, и что c означает символ .

Одной из сторон этой теории, которая может служить индикатором, является тот факт, что для каждого объекта потока (cin, cout, cerr и т. Д.) Существует эквивалентный wide-stream one ( wcin, wcout, wcerr и т. д.).

2 голосов
/ 14 февраля 2010

Редактировать: FredOverflow нашел правильный ответ со ссылкой на веб-сайт Страуструпа.

Черновик стандарта c ++ (n1905.pdf на www.open-std.org, точной ссылки у меня нет), похоже, указывает на то, что он идет от "C": "стандартный вывод C" => cout

27.3 Стандартные объекты iostream [lib.iostream.objects]

1- Заголовок объявляет объекты, которые связаны объекты со стандартными потоками C предусмотренные объявленными функциями в (27.8.2).

[...]

27.3.1 Объекты узкого потока [lib.narrow.stream.objects]

istream cin

1- Объект cin управляет вводом из буфера потока, связанного с объект stdin, объявленный в .

[...]

...