Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    35

    [C] Numeri letti da file scritti su matrice

    Ciao a tutti,

    Ho creato un programma che mi scrive su file N numeri radom, ora pero' voglio leggere uno alla volta questi numeri ed inserirli in una matrice, come posso fare?

    Esempio:

    Su file ho 50 numeri
    Devo creare una matrice da 5 righe e 10 colonne in cui inserire i numeri.


    Di seguito il prog. che mi scrive su file i numeri:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <time.h>
    #include <string.h>
    #include <sys/stat.h>
    #include <pthread.h>
    
    #define N 50
    
    int main (int argc, char **argv) {
    
    	int i, j, l, c;
    	char nome_file[81];
    	FILE *fp;
    
    	printf("Nome file: ");
    	scanf("%s", &nome_file);
    
    	fp = fopen(nome_file,"w+");
    
    	srand (time(0));
    
    	for (i=0; i<=N; i++) {
    		if (i==50) {
    			fprintf(fp, "%d", rand() % 100);
    		}
    		else {
    			fprintf(fp,"%d\n",rand() % 100);
    		}
    	}
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Prova a scrivere un programma simile ... apri il file in modalita' lettura (r) e usa la fscanf per leggere ...

    Non capisco ... hai scritto il programma che scrive e non provi neanche a scrivere quello che legge ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    35
    Eh, i misteri dell'informatica ...

    Ma guarda che con "w+" io il file lo apro sia in lettura che in scrittura ...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da AB03
    Eh, i misteri dell'informatica ...
    Gia' ... sono d'accordo ...

    Ma guarda che con "w+" io il file lo apro sia in lettura che in scrittura ...
    Pensavo volessi fare un secondo programma che legge solamente i dati ...

    Se vuoi, puoi continuare a scrivere il codice con questo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    35
    io ho provato cosi:

    prima di fclose(fp) ho messo quanto segue, ma e' palesemente scorretto infatto mi stampa una matrice di -1

    codice:
    	int matr[5][10];
    
    	for (l=0; l<=5; l++) {
    		for (c=0; c<=10; c++) {
    
    			matr[l][c] = fscanf(fp, "%d", 10);
    			printf("%d", matr[l][c]);
    
    		}
    	}

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Se non chiudi il file, devi tornare all'inizio dello stesso ... penso ci voglia un rewind ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    35
    Grazie, ma l'istruzione che ho scritto sopra e' corretta oppure no?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    No ... i cicli devono fermarsi con

    <5

    e

    <10

    e la fscanf non e' usata correttamente ... deve essere

    fscanf(fp, "%d", &matr[l][c]);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    35
    Ok grazie mille ora funziona.

    Ma adesso arriva il bello arrivano le thread per effettuare la somma dei numeri bene bene bene, ....

  10. #10
    Originariamente inviato da AB03
    codice:
    	for (l=0; l<=5; l++) {
    Non usare "l" come identificatore di una variabile od altro: si confonde troppo con "1,I,|".
    ;-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.