Vés al contingut

Entrada/sortida (C++)

De la Viquipèdia, l'enciclopèdia lliure

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]

  1. Stanley B. Lippman, Josee Lajoie. C++ Primer (en anglès). third. Massachusetts: Addison-Wesley, 1999, p. 1109–1112. ISBN 0-201-82470-1. 
  2. Bjarne Stroustrup. The C++ programming language (en anglès). third. Addison-Wesley, 1997, p. 637–640. ISBN 0-201-88954-4. 
  3. Stanley B. Lippman, Josee Lajoie. C++ Primer (en anglès). third. Massachusetts: Addison-Wesley, 1999, p. 1063–1067. ISBN 0-201-82470-1. 
  4. Bjarne Stroustrup. «A History of C++: 1979–1991» (en anglès).
  5. Stanley B. Lippman, Josee Lajoie. C++ Primer (en anglès). third. Massachusetts: Addison-Wesley, 1999, p. 1112–1120. ISBN 0-201-82470-1. 
  6. «<ios> Visual Studio 2010» (en anglès). Microsoft MSDN: Visual Studio 2010. [Consulta: 28 setembre 2011].
  7. Holzner, Steven. C++ : Black Book (en anglès). Scottsdale, Ariz.: Coriolis Group, 2001, p. 584. ISBN 1-57610-777-9.