2010-02-14 22 views
43

¿Qué significa "c" en los nombres cout, cin, cerr y clog?¿Qué significa "c" en cout, cin, cerr y clog?

Yo diría char pero no he encontrado nada para confirmarlo.

+1

@Rexxar Es posible que desee reconsiderar su aceptación. Este es un gran ejemplo de por qué nunca debes aceptar una respuesta demasiado rápido. Recomiendo esperar varias horas antes de hacerlo en el futuro, para dar tiempo a que se publiquen mejores respuestas. –

+0

@Neil Butterworth He cambiado la respuesta aceptada. – Rexxar

+0

¿Cuál es la diferencia entre "cout" y "out"? –

Respuesta

64

La "c" significa "carácter" porque iostreams asigna valores a y desde representaciones de bytes (caracteres). [Bjarne Stroustrup's C++ Style and Technique FAQ]

+2

@FredOverflow Excelente: esta es la respuesta correcta. –

+0

Buen hallazgo, directamente de la boca del caballo. – Motti

+8

Bah, ¿qué sabe Stroustrup sobre C++;) (+1) – ongle

24

principio supuse consola, y this link confirmó. Pero después de ver el quote from Stroustrup, parece que es un error, y que la c significa , carácter.

Una cosa a favor de que la teoría de que puede servir como un indicador es el hecho de que para cada objeto de flujo (cin, cout, cerr, etc.) hay un equivalente, amplia-stream uno (WCIN, wcout , wcerr, etc.).

+4

Sería bueno tener una referencia de un documento de estándares o uno de los trabajos de Stroustrup para esto; no puedo encontrar uno, y las páginas web aleatorias no cuentan, me temo. –

+0

Siempre pensé que se refería a C como en C++ :) (no lo he pensado mucho ...) –

+0

+1 Buen punto, debe ser consola. – fastcodejava

1

'C' significa consola

+3

Citation needed. – Johnsyweb

+0

Eso es común. Pero realmente representa un personaje. Lord Stroustrup ha hablado. – ybakos

1

Editar: FredOverflow ha encontrado la respuesta correcta con un enlace hacia la página web BS.

Un borrador estándar de C++ (n1905.pdf en www.open-std.org, no tengo el enlace exacto) parece indicar que proviene de "C": "salida estándar C" => cout

27,3 objetos iostream estándar [lib.iostream.objects]

1- la cabecera < iostream> declara objetos que se asocian objetos con el estándar C arroyos previsto por las funciones declaradas en < cstdio> (27.8.2).

[...] objetos

27.3.1 corriente estrecha [lib.narrow.stream.objects]

istream cin

1- El cin objeto controla la entrada desde un buffer de flujo asociado con el objeto stdin, declarado en < cstdio>.

[...]

+0

La razón por la que acepta es la correcta. –