# Programació en C/Entrada i sortida simple
## Entrada i sortida simple

﻿Quan ho penses una mica, un ordinador seria força inútil sense alguna manera de parlar amb la gent que l'utilitza. Igual com nosaltres necessitem informació per acomplir tasques, també els ordinadors. I de la mateixa manera que donem informació als altres perquè puguin fer tasques, també els ordinadors.
Aquests subministraments i retorns d'informació a un ordinador s'anomenen entrada i sortida. 'Entrada' és informació donada a un ordinador o a un programa. 'Sortida' és informació proporcionada per un ordinador o programa. Freqüentment, els programadors informàtics parlen amb el terme més general entrada/sortida, o simplement, I/O.
﻿A C, hi ha moltes maneres diferents per a un programa de comunicar-se amb l'usuari. Sorprenentment, els mètodes més simples normalment ensenyats als programadors principiants també poden ser els més poderosos. En l'exemple "Hola, Món" al començament d'aquest text, se'ns introduïa a un arxiu de Biblioteca Estàndard stdio.h, i una de les seves funcions, printf. Aquí parlem de més de les funcions que stdio.h ens dóna.

## Sortida emprant printf

Tornant al començament d'aquest text, el programa de demostració duplicat mes avall:
Si compiles i executes aquest programa, vorà la sentència d'avall aparèixer a la seva pantalla:
Aquest acompliment sorprenent s'ha aconseguit utilitzant la funció printf. Una funció és com una "caixa negra" que li fa alguna cosa sense exposar el que hi ha al seu interior. Podem escriure funcions nosaltres mateixos a C, però això ho cobrirem més tard.
Ha vist que per utilitzar printf es posa text, envoltat per cometes, entre els parèntesis. Anomenem el text envoltat per cometes un string (en Anglès, "cadena") literal (o només un string), i anomenem aquesta string un argument a printf.
Com a nota d'explicació, és a vegades convenient incloure parèntesis de obertura i tancament després d'un nom de funció per recordar-nos que és, en efecte, una funció. Tanmateix normalment quan el nom de la funció de què estem parlant s'entén, no és necessari.
Com pot veure en l'exemple a dalt, utilitzanr printf és tan simple com el teclejar una mica de text, envoltat per cometes (fixi's que aquests són cometes i no dues cometes senzilles). Així, per exemple, pot imprimir qualsevol string posant-lo com a argument a la funció de printf:
I una vegada es posi en una funció main, es mostrarà:

### Mostrant nombres i seqüències d'escapada
#### Codis amb marcadors de posició

La funció printf és una funció poderosa, i és probablement la funció més utilitzada en programes C.
Per exemple, anem a mirar un problema. Diguem que no sabem quant son 1905 + 31214. Utilitzem C per aconseguir la resposta.
Comencem a escriure:
(Per a més informació sobre la recta de dalt, vegeu El Preprocessador).
però aquí ens quedam travats! printf només imprimeix strings! Afortunadament, printf té mètodes per mostrar nombres. El que fem es posa un codi amb un format especial, anomenat marca de posició, dins la string. Escrivim:
El marcador de posició, literalment "marca la posició" de a on es posará el nombre que és el resultat de 1905+31214.
Aquests marcadors de posició s'anomenen especificadors de format. Molts altres especificadors de format s'empren amb printf. Si tenim un nombre en punt flotant, podem utilitzar %f per imprimir un nombre de punt flotant, en punt decimal i més. Aquí hi ha una llista incompleta:
* %i and %d - int
* %f - float
* %lf - double
* %s - string
* %x - hexadecimal
Una llista més completa és en la secció E/S d'arxius.

#### Tabuladors i nova línea

Si volem aconseguir una sortida que sembli com:
printf no farà el retorn de carro per anar a la següent línea al final de cada sentència: ho hem de fer nosaltres. Com?
El que podem fer és usar el caràcter d'escapada de línea nova. Un caràcter d'escapada és un caràcter especial que podem escriure però farem alguna cosa especial a la pantalla, com fer un soroll, escriu un tabulador, etcètera. Per escriure una nova línea escrivim \n. Tots els caràcters d'escapada comencen amb una barra invertida.
Per aconseguir la sortida de dalt, escrivim:
o per estar una mica més segurs, podem trencar aquesta declaració de printf llarga sobre unes quantes línies. Així el nostre programa serà:
Hi ha uns altres caràcters d'escapada que podem utilitzar. Un altre de comú és utilitzar \t per escriure un tabulador. Pot utilitzar \a per fer sonar el timbre de l'ordinador, però no hauria d'utilitzar aquest molt molt en els seus programes, ja que l'ús excessiu de so no és gaire amistós per l'usuari.

## Altres mètodes de sortida
### puts

La funció de puts és una manera molt simple d'enviar una string a la pantalla quan no té hi ha cap marcador de posició pel qual preocupar-se. Funciona de forma molt parescuda a com ho fa la funció printf que vam veure a l'exemple de "Hola, món!":
mostrarà en pantalla:
seguit pel caràcter de nova línea (de la manera que hem dit a dalt). (La funció puts afegeix un caràcter de newline a la seva sortida.) La funció fputs és similar: