Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2016
    Messaggi
    3

    [C++] Scrittura file .txt come matrice

    Buongiorno ragazzi,
    Sono nuovo al linguaggio C++ e sto cercando di creare un programma dove scrivo in un file i dati presenti in una matrice 5x6.
    Il programma, oltre a scrivere, legge anche. Il problema si presenta quando vado a leggere il file dopo che l'ho scritto, poiché non viene scritto formato matrice, ovvero 5 colonne e 6 righe, ma viene scritto solamente su 2 righe. Perciò quando il programma legge il contenuto del file non riesce a visualizzare gli elementi giusti nel cout. Ho provato con vari controlli ma purtroppo non ci sono riuscito.
    Come potrei fare?

    Grazie mille in anticipo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non importa i dati come vengono scritti ma che siano in numero adeguato.

    Se la matrice è 5x6 devi avere 30 valori nel file, anche se fosse uno solo per riga.

    Mostra il codice che utilizzi per scrivere e per leggere e il file di testo con i valori.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2016
    Messaggi
    3
    Questo è il codice che uso per scrivere i dati che ho nella matrice nel documento di testo:
    codice:
    ofstream f("C:\\Users\\X\\Desktop\\Orario.txt");            
               for (int i = 0; i < 6; i++) {
                    for (int j = 0; j < 5; j++) {
                        f << m[i][j];
                    }
                }
    Questo è per leggere dal documento di testo:
    codice:
    ifstream file("C:\\Users\\Alessio\\Desktop\\Orario.txt");    
        if (file.is_open())
        {
            int scelta;
            string m[6][5];
            for (i = 0; i < 6; i++)
            {
                for (j = 0; j < 5; j++) {
                    file >> m[i][j];
                }
            }
    Questo è il documento da dove prendo/scrivo i dati:
    codice:
    Informatica Complementi Informatica Lab.Sistemi Italiano
    Storia Sistemi Sistemi Lab.Sistemi Italiano
    Matematica Religione Matematica Italiano Matematica
    Lab.Telecomunicazioni Informatica Inglese Italiano Palestra
    Lab.Telecomunicazioni Inglese TPSIT Lab.Informatica Inglese
    Palestra TPSIT Storia Lab.Informatica Telecomunicazioni

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quando scrivi devi separare i dati con almeno uno spazio e ad ogni riga devi andare a capo.
    Queste cose le devi prevedere tu, non lo fa il programma da solo ... altrimenti scrivi tutto in una unica stringa ...

    codice:
    for (i = 0; i < 6; i++) 
    {
       for (j = 0; j < 5; j++) 
       {
          f << m[i][j] << " ";
       }
    
       f << endl;
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2016
    Messaggi
    3
    Grazie mille, ora funziona! Avevo sbagliato dove mettere f << endl;

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In realtà non c'era la endl nel tuo codice ...

    Comunque, non era quello l'importante, ma la mancanza dello spazio " " tra i dati che ti impediva di rileggere i dati correttamente.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.