Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C++] File e matrici

Visualizzazione discussione

  1. #2
    Utente di HTML.it
    Registrato dal
    Nov 2015
    Messaggi
    32
    Quote Originariamente inviata da AdelaidePuglies Visualizza il messaggio
    Salve ragazzi,premetto che sono alle prime armi con la programmazione.
    Per esercitarmi per un esame volevo provare a scrivere una matrice in un file. Quando compilo e poi esegue sembra tutto ok,quando vado ad aprire il file non mi esce la matrice
    Ho provato di tutto,non so come fare !
    linguaggio c++ e uso il dev-c++ 5.11
    Questo è il programma:

    #include <iostream>
    #include <fstream> //header necessario per fstream!
    #define maxr 3
    #define maxc 3
    using namespace std;
    int crea_matrice (int matrice[maxr][maxc])
    {

    int i,j;
    for ( i=0; i<maxr; i++)

    for ( j=0; j<maxc; j++)
    {
    cout<<"matrice["<<i<<"]["<<j<<"]"<<"\n";
    cin>>matrice[i][j];
    }
    }


    int stampa_matrice (int matrice[maxr][maxc])
    {
    cout<<"\n\n";
    for (int i=0; i<maxr; i++)
    {
    cout<<"\n";
    for (int j=0; j<maxc; j++)
    {cout<<"\t"<<matrice[i][j];
    }
    }
    }
    int main() {
    fstream f("file1.txt", ios:: out); //apre il file in scrittura (cancellando quello che già c'era
    string s;


    if(!f) {
    cout<<"Errore nella creazione del file!";
    return -1;
    }
    int matrice[maxr][maxc];
    crea_matrice(matrice);
    cout<<"la matrice è:"<<endl;

    f<<stampa_matrice(matrice);


    f.close();

    };


    Non ho ben capito quale sia il tuo problema , vuoi per caso inserire la matrice 3x3 che l'utente digita a tastiera in un file di testo?

    Se si potresti fare così:

    codice:
    #include <iostream>
    #include <fstream>
    #define maxr 3
    #define maxc 3
    using namespace std;
    typedef char VettoreCaratteri[256];
    
    
    int crea_matrice (int matrice[maxr][maxc]){
        int i,j;
        for ( i=0; i<maxr; i++){
            for ( j=0; j<maxc; j++){
            cout<<"matrice["<<i<<"]["<<    j<<"]"<<"\n";
            cin>>matrice[i][j];
            }
        }
    }
    
    
    int stampa_matrice (int matrice[maxr][maxc]) {
    cout<<"\n\n";
        for (int i=0; i<maxr; i++){
            cout<<"\n";
            for (int j=0; j<maxc; j++){
                cout<<"\t"<<matrice[i][j];
            }
        }
    }
    
    
    void CreaFileTesto(VettoreCaratteri filename,int matrice[maxr][maxc]) {
        fstream f;
        f.open(filename,ios::out);
        if(!f)
            cout<<"Errore nella creazione del file!";
        else{
            f<<maxr<<endl;
            f<<maxc<<endl;
            for ( int i=0; i<maxr; i++){
                for ( int j=0; j<maxc; j++){
                    f<<matrice[i][j]<<" ";
                }
            f<<endl;
            }
        }
        f.close();
    }
    
    
    int main(int argc, char** argv) {
        int matrice[maxr][maxc]; 
        crea_matrice(matrice);
        stampa_matrice(matrice);
        cout<<"\nCreazione file in corso...\n";
        CreaFileTesto("matrice.txt",matrice);
        cout<<"\nIl file e' stato creato con successo\n";
        return 0;
    }
    Ho creato un altro sottoprogramma "CreaFileTesto" che ti mette in un file di testo nel primo rigo il numero di righe
    nel secondo il numero di colonne
    e poi la matrice stessa . . . (ammesso che era questo che volevi sapere...)

    N.B.: Ho messo numero di riga e colonna nel file testo così se vuoi creare un'altra funzione "LeggiFileTesto" ad esempio puoi subito trovare numero di riga e colonna e leggere la matrice direttamente dal file testo piuttosto che da tastiera .

    P.S.: Ti consiglio di usare "[ CODE ] *InserisciQuiIlCodice* [ / CODE]" (senza spazi) per inserire porzioni di codice così da facilitarne la lettura.

    P.P.S.: Nel caso in cui non era questo ciò che volevi facci sapere , magari aspettiamo anche qualcun'altro bravo del forum, ciao
    Ultima modifica di Warioss; 28-01-2016 a 15:08

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 © 2025 vBulletin Solutions, Inc. All rights reserved.