Entrada/sortida (C++)
En el llenguatge de programació C++, la biblioteca d'entrada/sortida fa referència a una família de plantilles de classe i funcions de suport a la biblioteca estàndard de C++ que implementen capacitats d'entrada/sortida basades en fluxos.[1] És una alternativa orientada a objectes als fluxos basats en FILE de C de la biblioteca estàndard C. [2][3]
Història
[modifica]Bjarne Stroustrup, el creador de C++, va escriure la primera versió de la biblioteca d'E/S de flux el 1984, com una alternativa segura i extensible a la biblioteca d'E/S de C. [4] La biblioteca ha sofert una sèrie de millores des d'aquesta versió inicial, inclosa la introducció de manipuladors per controlar el format i la plantilla per permetre el seu ús amb tipus de caràcters diferents de char.
Visió general
[modifica]La majoria de les classes de la biblioteca són en realitat plantilles de classe molt generalitzades. Cada plantilla pot funcionar amb diversos tipus de caràcters, i fins i tot les operacions en si, com ara com es comparen dos caràcters per igualtat, es poden personalitzar. Tanmateix, la majoria del codi ha de fer operacions d'entrada i sortida utilitzant només un o dos tipus de caràcters, per tant, la majoria de vegades s'accedeix a la funcionalitat a través de diversos typedefs, que especifiquen noms per a les combinacions de plantilla i tipus de caràcter que s'utilitzen habitualment.
Fitxers de capçalera
[modifica]Les classes de la biblioteca d'entrada/sortida resideixen en diverses capçaleres.
Buffers de flux
[modifica]Hi ha dotze classes de buffer de flux definides en el llenguatge C++ com a taula.
Classes de suport
[modifica]ios_base
i basic_ios
són dues classes que gestionen els bits de nivell inferior d'un flux. ios_base
emmagatzema informació de format i l'estat del flux. basic_ios
gestiona el stream-buffer associat. basic_ios
es coneix comunament com simplement ios
o wios
, que són dos tipus de definicions per basic_ios
amb un tipus de caràcter específic. basic_ios
i ios_base
són molt poques vegades utilitzats directament pels programadors. Normalment, s'accedeix a la seva funcionalitat a través d'altres classes com iostream
que les hereten.[5][6]
Fluxos d'entrada/sortida
[modifica]Els fluxos d'entrada/sortida de C++ es defineixen principalment per iostream
, un fitxer de capçalera que forma part de la biblioteca estàndard de C++ (el nom significa I nput/ Output Stream). En C++ i el seu predecessor, el llenguatge de programació C, no hi ha una sintaxi especial per a l'entrada o sortida de dades en streaming. En canvi, es combinen com una biblioteca de funcions. Igual que la capçalera cstdio
heretada de stdio.h de C, iostream
proporciona serveis bàsics d'entrada i sortida per a programes C++. iostream utilitza els objectes cin
, cout
, cerr
i clog
per enviar dades a i des dels fluxos estàndard d'entrada, sortida, error (sense búfer) i registre (emmagatzemat) respectivament. Com a part de la biblioteca estàndard de C++, aquests objectes formen part de l'espai de noms std
.[7]
Referències
[modifica]- ↑ Stanley B. Lippman, Josee Lajoie. C++ Primer (en anglès). third. Massachusetts: Addison-Wesley, 1999, p. 1109–1112. ISBN 0-201-82470-1.
- ↑ Bjarne Stroustrup. The C++ programming language (en anglès). third. Addison-Wesley, 1997, p. 637–640. ISBN 0-201-88954-4.
- ↑ Stanley B. Lippman, Josee Lajoie. C++ Primer (en anglès). third. Massachusetts: Addison-Wesley, 1999, p. 1063–1067. ISBN 0-201-82470-1.
- ↑ Bjarne Stroustrup. «A History of C++: 1979–1991» (en anglès).
- ↑ Stanley B. Lippman, Josee Lajoie. C++ Primer (en anglès). third. Massachusetts: Addison-Wesley, 1999, p. 1112–1120. ISBN 0-201-82470-1.
- ↑ «<ios> Visual Studio 2010» (en anglès). Microsoft MSDN: Visual Studio 2010. [Consulta: 28 setembre 2011].
- ↑ Holzner, Steven. C++ : Black Book (en anglès). Scottsdale, Ariz.: Coriolis Group, 2001, p. 584. ISBN 1-57610-777-9.