Leggere una sequenza di numeri attaccati da file

di il
3 risposte

Leggere una sequenza di numeri attaccati da file

Buongiorno,
per esercizio devo leggere da file le seguenti sequenze:
4321103270985209
4598933174535361
4641244854636181
9999999999999999
e salvarle in una matrice[RIGHE][COLONNE]. sapendo che le colonne sono 16 ho fatto:

i=0;
while(!feof(fp)){
for(j=0; j<COLONNE; j++){
fscanf(fp, "%d ", &matrice[j]);
}
i++;
}

solo che non legge correttamente, provando a separare i numeri (4 3 2 1 1 0... ecc) funziona. come posso fare a farlo funzionare senza modificare il file?
grazie!

3 Risposte

  • Re: Leggere una sequenza di numeri attaccati da file

    Primo, usa il pulsante </> per inserire il codice FORMATTATO.

    Secondo: SCRIVI in Italiano, CON LA PUNTEGGIATURA!!!!! Vabbe che non devi scrivere un libro, ma ALMENO FATTI CAPIRE!

    Terzo: sono scemi questi numeri!
    Sono attaccati da un file e non scappano?????
    Vabbe' che corrono in fila, ma potrebbero darsela a gambette in direzioni a caso!!!! O correre PIU' velocemente!!!!

    Come dire: MAGARI per te sara' comprensibile, ma noi "NON CI ABBIAMO CAPITO UN'ACCIDENTE" !!!!
  • Re: Leggere una sequenza di numeri attaccati da file

    Se sono numeri di carte di credito (fate tutti gli stessi esercizi?) allora usa un insieme di stringhe di 17 caratteri con la fscanf e %s
  • Re: Leggere una sequenza di numeri attaccati da file

    Personalmente trovo che sia uno spreco dover utilizzare la funzione fscanf per ricavare il valore numerico di ogni singolo carattere che vale esattamente (carattere - '0'). Sarebbe sufficiente inserire il valore associato nella rispettiva colonna:
    for(int j = 0; j < COLONNE; j++)
    {
    	matrix[i][j] = sLine[j] - '0';
    }
    per ricavare la linea "sLine" dal testo si può usare la fgets:
    char *result = fgets(sLine, LINESIZE, fileStream);
Devi accedere o registrarti per scrivere nel forum
3 risposte