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

Что означает буква "с" в именах cout, cin, cerr и clog?

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


person Rexxar    schedule 14.02.2010    source источник
comment
@Rexxar Возможно, вы захотите пересмотреть свое согласие. Это отличный пример того, почему вы никогда не должны принимать ответ слишком быстро. Я бы рекомендовал подождать несколько часов, прежде чем делать это в будущем, чтобы дать время для публикации лучших ответов.   -  person    schedule 14.02.2010
comment
@ Нил Баттерворт Я изменил принятый ответ.   -  person Rexxar    schedule 14.02.2010
comment
В чем разница между cout и out?   -  person Walter Mitty    schedule 15.02.2010
comment
@WalterMitty Эм, cout - это поток вывода символов в C++. out — это слово в английском языке.   -  person Jim Balter    schedule 05.01.2019


Ответы (3)


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

person fredoverflow    schedule 14.02.2010
comment
Если это правильный ответ, то он не очень полезный! Все объекты iostream являются символьными потоками. cout и cin — это просто такие объекты, установленные в потоках stdout и stdin (обычно это «консоль»), поэтому «консоль» кажется более подходящей и более полезной в качестве идентификатора. Если бы они еще не существовали, stdout и stdin были бы для них очевидными именами. Конечно, немногие из символов в стандартной библиотеке являются образцами хорошего именования! - person Clifford; 14.02.2010
comment
У @clifford есть хорошая мысль. К сожалению, есть wcout (почему его не используют программисты на C/C++?), который, безусловно, означает широкую консоль. Зачем кому-то использовать 80-колоночное консольное окно на современных ЖК-экранах? - person Hans Passant; 15.02.2010
comment
Также см. стр. 45 книги Страуструпа Programming Principles and Practices Using C++: 'Имя cout произносится как See-Out и является аббревиатурой от ccharacter. выходнойпоток. Вы найдете сокращения, довольно распространенные в программировании. Естественно, аббревиатура может немного раздражать, когда вы впервые видите ее и должны ее запомнить, но как только вы начнете использовать аббревиатуры неоднократно, они станут вашей второй натурой, и они необходимы для того, чтобы текст программы оставался коротким и управляемым». - person eric; 28.03.2018
comment
В С++ есть широкий тип char. Нет такого понятия, как широкая консоль. wcout определенно означает широкий символ. - person Yongwei Wu; 17.09.2019

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

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

person JRL    schedule 14.02.2010
comment
Было бы неплохо иметь для этого ссылку из стандартного документа или одной из работ Страуструпа — я не могу ее найти, а случайные веб-страницы, боюсь, не в счет. - person ; 14.02.2010
comment
Я всегда думал, что это относится к C как к C++ :) (много не думал об этом...) - person Viktor Sehr; 14.02.2010

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

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

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

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

[...]

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

istream cin

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

[...]

person Rexxar    schedule 14.02.2010