LECTURA AMB FORMAT

Algunes d'aquestes funcions són ben conegudes per tots nosaltres. Es tracta de llegir o escriure segons uns patrons que anomenarem format i dels quals no parlarem amb detall (podeu legir-ne alguna cosa aquí)

#include <stdio.h>

int scanf (const char * format, llista_d'elements);

int fscanf (FILE * apfi, const char * format, llista_d'elements);

int sscanf (const char * origen, const char * format, llista_d'elements);

Suposem conegut el funcionament de la funció scanf, que llegeix del teclat.

fscanf: Llegeix les variables de llista_d'elements de la manera indicada a format, del fitxer associat a apfi.

Retorna el nombre de caràcters llegits. En cas d'error:

  • Retorna 0 si no s'han assignat valors.
  • Retorna EOF si s'ha detectat fi de fitxer

scanf: Igual però des de l'entrada estàndard.

sscanf: Igual però els caràcters es llegeixen des de la cadena origen. El caràcter de fi de cadena es considera com a fi de fitxer.

Crea un fitxer que s'anomeni edats.txt on a cada línia hagi un nom (sense espais en blanc) seguit d'un tabulador i d'una edat. El següent programa et permetrà llegir les dades d'aquest fitxer.

#include <stdio.h>

main()
{
FILE * apfi;
char nom[20];
int edat;

if ((apfi=fopen("edats.txt","r"))==NULL)
     perror("En obrir edats.txt");
else
     while (fscanf(apfi,"%s\t%d\n",nom,&edat)>0)
         printf("Nom: %s\tEdat: %d\n",nom,edat);
}

 

 

 

Autor: Lluís València López

Creative Commons License
Aquesta obra està subjecta a una Llicència de Creative Commons.