2010-02-14 17 views
43

Cosa significa "c" nei nomi cout, cin, cerr e clog?Cosa significa "c" in cout, cin, cerr e clog?

Direi char ma non ho trovato nulla per confermarlo.

+1

@Rexxar Si potrebbe voler riconsiderare l'utente accetti. Questo è un ottimo esempio del perché non si dovrebbe mai accettare una risposta troppo rapidamente. Consiglierei di aspettare diverse ore prima di farlo in futuro, per dare il tempo di pubblicare risposte migliori. –

+0

@Neil Butterworth Ho cambiato la risposta accettata. – Rexxar

+0

Qual è la differenza tra "cout" e "out"? –

risposta

64

La "c" sta per "carattere" perché iostreams mappano i valori da e verso le rappresentazioni di byte (char). [Bjarne Stroustrup's C++ Style and Technique FAQ]

+2

@FredOverflow Eccellente: questa è la risposta corretta. –

+0

Buona scoperta, direttamente dalla bocca del cavallo. – Motti

+8

Bah, cosa sa Stroustrup di C++;) (+1) – ongle

24

Originariamente ho indovinato console e this link confermato. Ma dopo aver visto il , sembra che sia un equivoco e che la lettera c sta per carattere.

Una cosa in favore di quella teoria che può servire come un indicatore è il fatto che per ogni oggetto flusso (cin, cout, cerr, ecc) c'è un equivalente, ampio flusso uno (wcin, wcout , wcerr, ecc.).

+4

Sarebbe bello avere un riferimento da un documento standard o uno dei lavori di Stroustrup per questo - non riesco a trovarne uno, e le pagine web casuali non contano, temo. –

+0

Ho sempre pensato che si riferisse a C come in C++ :) (non ci ho pensato molto ...) –

+0

+1 Buon punto, deve essere console. – fastcodejava

1

'C' significa console

+3

Citazione necessaria. – Johnsyweb

+0

Questo è comune. Ma in realtà sta per carattere. Lord Stroustrup ha parlato. – ybakos

1

Edit: FredOverflow ha trovato la risposta giusta con un link verso il sito web Stroustrup.

Una bozza standard C++ (n1905.pdf su www.open-std.org, non ho il collegamento esatto) sembra indicare che proviene da "C": "C standard output" => cout

27.3 oggetti iostream standard [lib.iostream.objects]

1- l'intestazione < iostream> dichiara oggetti che associano oggetti con lo standard C torrenti previsto dalle funzioni dichiarate in < cstdio> (27.8.2).

[...] oggetti

27.3.1 Narrow flusso [lib.narrow.stream.objects]

istream cin

1- Il cin oggetto controlla l'input da un buffer di flusso associato a stdin dell'oggetto, dichiarato in < cstdio>.

[...]

+0

La ragione per cui hai accettato è quella corretta. –