No no, alt!! Ci sono svariate cose sbagliate!Originariamente inviato da Eris
ovviamente è sbagliato.il programma dovrebbe calcolare la divisione e il resto prendendo i valori da un file (tipo scirtti cosi: 5 9 1 10 2).il file è composto da due righe di lunghezza massima di 150 caratteri.ci sono due righe.bisogna prendere i valori della prima e dividerli per la seconda e stampare i risultati su file.
avrò sbagliato proprio il procedimento logico ma non so come fare!
A) Il file di input è un file di testo, quindi non ha senso dichiarare gli array 'a' e 'b' di tipo int! Devi usare un array di char.
B) fread e fseek non servono. Se il file è di testo, è sufficiente utilizzare 2 fgets. La fseek che hai messo poi non ha alcun senso. Infatti ti sposti all'offset indicato dalla espressione (MAX-1)*sizeof(MAX) e siccome MAX vale 150, ti sposti all'offset 149*4 cioè 596. Che proprio non ha senso!!!
C) I numeri nel file di testo sono rappresentati da uno o più caratteri. Questo vuol dire che devi "spezzare" la stringa in modo da prendere i singoli numeri separati dagli spazi, poi converti la stringa contenente il solo numero (es. "10") in un valore numerico (int) e poi a quel punto fai le operazioni matematiche che ti servono. Per separare i numeri usa la funzione strtok(), per convertire una stringa in un numero usa la funzione atoi().
D) Visto che gli operandi si trovano su due righe, dopo che le hai lette e messe nei 2 array di char, devi prendere una riga per volta e creare per ognuna un array di int in modo da lasciare alla fine le sole operazioni matematiche. Questo perché non puoi usare la strtok() per operare contemporaneamente su 2 stringhe diverse (questo è un limite della strtok).