PDA

Visualizza la versione completa : [C] problema con fscanf: non prende i valori


annette500
13-07-2011, 13:18
Buonasera a tutti! Ho iniziato da poco i file in C e ho un problema con un esercizio che proprio non riesc a capire xke non funzioni. ho un file di testo con dei numeri interi e devo leggere questi numeri e metterli dentro un vettore. Ho usato una fscanf che però non fa niente, cioè tiene i numeri giganteschi che ci sono all'inizio senza sostituirli con quelli del file. qualcuno mi può dare una mano?

questo è il mio testo:

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#define MAX 6

int main(int argc,char *argv[])
{
FILE *fp;
int c;
int numeri[MAX+1],numelementi=0,ok=1,i,j;
fp=fopen(argv[1],"r");
if(fp==NULL)
{
printf("Errore nella lettura del file.\n");
}
else
{
c=getc(fp);
while(c!=EOF)
{
if(ok==1)
{
if(isdigit(c)!=0)
{
numelementi++;
ok=0;
}
}
else
{
if(isspace(c)!=0)
{
ok=1;
}
}
c=getc(fp);
}
for(i=0;i<numelementi;i++)
{
fscanf(fp,"%d",&numeri[i]);
}
}
printf("il file contiene %d elementi\n",numelementi);
for(j=0;j<numelementi;j++)
{
printf("numeri[%d]=%d",j,numeri[j]);
}
fclose(fp);
return 0;
}

oregon
13-07-2011, 14:17
Usa i tag CODE del forum altrimenti il codice non si capisce ...

Inoltre, a cosa servono tutte quelle chiamate a

getc

che fai prima della scanf ?

annette500
13-07-2011, 23:25
non sapevo come scrivere in altro modo il codice scusate...
Ho trovato l'errore (dopo tutta la giornata) : dovevo mettere una rewind :D
cosi il prossimo che trova questo problema magari non ci perde una giornata come me :D
grazie mille lo stesso

oregon
14-07-2011, 00:28
Se avessi risposto alla questione delle getc avresti risparmiato tempo ... se ti rivolgi ad un forum, dai un'occhiata alle risposte ogni tanto ...

annette500
14-07-2011, 12:47
non mi andava più la connessione! se no certo che avrei guardato... -.-'

Loading