Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50

    Scrivere matrice su file

    Salve ho un problemino nel scrivere gli elementi di una matrice quadrata su un file.
    Vorrei che gli elementi della matrice venissero scritti in modo corretto, ovvero "n elementi in riga" ed "n elementi in colonna" mentre con questo mio codice i valori vengono scritti tutti sulla prima riga, la stessa cosa avviene per il vettore. Come posso fare?
    Codice PHP:
    -
    -
    -
    if (
    argc!=5)     
    printf("sintassi comando:%s, filematrice filevettore dimensione valore\n",argv[0]);         exit(0);    
    }
         
    if ((
    matrice=fopenargv[1],"wb+"))==NULL || (vettore=fopenargv[2],"wb+"))==NULL)     {             
    printf("Errore nella creazione del file\n");         
    exit(
    0);     
    }         
    dimensione=atoi(argv[3]);     
    valore=atoi(argv[4]);     
    for (
    cont=0;cont<dimensione*dimensione;cont++) 
    {         
    fprintf(matrice,"%d",valore);         
    if (
    cont<dimensione
    {             
    fprintf(vettore,"%d",valore);         
    }   } 
    Grazie per gli eventuali aiuti!!

    CIaoooooooooooo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Devi usare due cicli

    codice:
    for (cont1=0;cont1<dimensione;cont1++)
    {
        for (cont2=0;cont2<dimensione;cont2++)
            fprintf(matrice, "%d ", valore);
    
        fprintf(matrice, "\n");
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    Grazie, ma non mi funziona ugualmente

    Se eseguo il programma "creamatrice.exe matrice.txt 2 10", quindi una matrice 2x2 con tutti elementi 10 in output avrò
    10 10 10 10

    Invece quello che vorrei è
    10 10
    10 10

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Con il codice che ti ho mostrato, avrai quello che chiedi ... l'hai forse modificato ?

    Cosa hai scritto (mostra tutto il codice modificato ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    Codice PHP:
    #include <stdlib.h> 
    #include <stdio.h>  
    //PROGRAMMA CHE CREA UN FILE CONTENENTE UNA MATRICE QUADRATA E UN FILE CONTENENTE UN VETTORE  
    int main (int argc,char *argv[]) {    
    FILE *matrice;     
    FILE *vettore;     
    int dimensione=0valore=0cont1=0cont2=0;          
    if (
    argc!=5)     
    {         
    printf("sintassi comando:%s, nomefile_matrice nomefile_vettore dimensione valore\n",argv[0]);        
    exit(
    0);     
    }          
    if ((
    matrice=fopenargv[1],"wb+"))==NULL || 
    (
    vettore=fopenargv[2],"wb+"))==NULL)     
    {             
    printf("Errore nella creazione del file\n");        
    exit(
    0);     
    }             
    dimensione=atoi(argv[3]);     
    valore=atoi(argv[4]);          
    for (
    cont1=0;cont1<dimensione;cont1++)     
    {     for (
    cont2=0;cont2<dimensione;cont2++)         
    fprintf(matrice"%d "valore);         
    fprintf(matrice"\n");         
    }        

    for(
    cont1=0cont1<dimensione;cont1++)         
    {             
    fprintf(vettore,"%d ",valore);             
    fprintf(vettore"\n");         
    }          
    printf("File creati\n");     
    fclose(matrice);     
    fclose(vettore);          
    return 
    0


  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ho provato e genera il file della matrice correttamente ...

    Semmai c'e' un errore in quello del vettore in quanto deve essere

    codice:
    for(cont1=0; cont1<dimensione;cont1++)          
      fprintf(vettore,"%d ",valore);              
    fprintf(vettore, "\n");
    E quando esegui il programma, hai dimenticato di indicare il nome del file del vettore.
    Quindi sarà

    creamatrice.exe matrice.txt vettore.txt 2 10

    e non come hai indicato tu
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    Nulla da fare, ho provato anche su un altro pc.. è come se non rilevasse lo \n..

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    Infatti ho appena risolto mettendo \r\n e non solo \n!
    Comunque in altri pezzi di codice lo \n mi funziona benissimo, l'inghippo riguarda solo la scrittura di file..
    Chi mi spiega questo mistero? :master:

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ci dici come lavori? Linux? Windows? Con quale strumento controlli i file appena scritti?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Se scrivi file di testo non devi mettere "b" nella stringa di apertura del file, altrimenti non avranno luogo le trasformazioni di carattere automatiche (ad esempio, '\n'->"\r\n" su Windows).
    Amaro C++, il gusto pieno dell'undefined behavior.

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.