come faccio a leggere un numero all interno di un file
esempio
asd asd 45 ash fghj
getc prendere 1 carattere alla volta
fgetc una riga
e per una parola?![]()
come faccio a leggere un numero all interno di un file
esempio
asd asd 45 ash fghj
getc prendere 1 carattere alla volta
fgetc una riga
e per una parola?![]()
Puoi leggere un carattere alla volta e verificare se è un numero oppure no mediante l'utilizzo della funzione isdigit(...)
Se non hai modo di vedere la sintassi, fammi sapere che te la posto
![]()
La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano
Originariamente inviato da m@ximo
Puoi leggere un carattere alla volta e verificare se è un numero oppure no mediante l'utilizzo della funzione isdigit(...)
Se non hai modo di vedere la sintassi, fammi sapere che te la posto
![]()
si ma se leggo carattere per carattere leggero 45 come 4 e poi come 5 ..
a me serviva un modo che una volta arrivto al 4 prendeva tutto il numero assieme...
e possibile cio' ?
le parole nella riga sono separate da qualcosa (spazi, caratteri particolari) ?
La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano
uno o + per la precisione
si vede che facciamo tutti e tre lo stesso progetto? :gren:
cmq secondo me fai prima a leggere carattere per caarttere come abbiamo fatto per la getword...![]()
Portati tutta la riga in memoria con fgets e scannala con sscanf.
Se vuoi programmare in maniera professionale cmq ti consiglio di non usare lo standard io.
Ciao !
:master:Originariamente inviato da /* Coder */
Se vuoi programmare in maniera professionale cmq ti consiglio di non usare lo standard io.
la lettura avviene da file in ogni caso![]()
Prova questo codice:
"riga" è un char* che contiene la riga intera del tuo file.
Questo codice stampa tutti i numeri contenuti nella riga, con l'incoveniente che se trova uno 0 non lo riconosce, se può andare ci accontentiamo sennò troviamo una soluzionecodice:char* s = strtok(riga," "); while(s) { /* Con file devi sostituire il nome del tuo file */ if(atoi(s)) /* Questo è un numero */ s = strtok(NULL," "); }![]()
La luce è più veloce del suono,ecco xchè alcune persone sembrano brillanti fino a quando non parlano
grazie![]()
ma a me serviva un comando che prendeva tutto da spazio a spazio tipo la fgetc che si ferma allo /n volevo una che si fermava allo spazio... se nn ce' faccio manualmente![]()