Leggere una sequenza di numeri attaccati da file

di Anonimizzato26820 il
3 risposte
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

  • 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" !!!!
  • 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
  • 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