Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    77
    è pari pari quello che ho posta prima,ho solo cambiato quella parte che hai detto tu.Anzi mi da un solo errore,sempre relativo alla riga colonne = i/righe; nella funzione conteggio


    codice:
    #include <iostream>#include <fstream>
    #include <cstdlib>
    
    
    using namespace std;
    
    
    int conteggio (int *righe,int *colonne);
    void leggi  (int **mat,int righe,int colonne);
    void stampa (int **mat,int righe,int colonne);
    
    
    int main ()
    {
        int *righe;
        int *colonne;
        int **mat;
    
    
    
    
    
    
        bool uscita = false;
        int opzione;
    
    
    
    
        conteggio( &righe, &colonne);
        cout << righe << colonne;
    
    
    
    
    
    
        mat = new int*[righe];
         for (int i=0;i<righe;i++)
            {
            mat[i] = new int [colonne];
            }
    
    
        while (uscita == false)
        {
    
    
            cout << "\nScegli una opzione:\n";
            cout << "1)Leggi.\n";
            cout << "2)Stampa.\n";
            cout << "3)Esci dal programma.\n";
            cin >> opzione;
    
    
           switch (opzione)
           {
             case (1):
             leggi(mat,righe,colonne);
             cout << "\n\n\n";
             break;
    
    
             case (2):
             stampa (mat,righe,colonne);
             cout << "\n\n\n";
             break;
    
    
             case (3): uscita = true;
             break;
           }
    
    
    
    
        }
        cout << "\n\n\n";
    
    
    
    
    
    
    }
    
    
    int conteggio (int *righe,int *colonne)
    {
        char contarighe[10];
        int contacolonne;
        fstream file;
        file.open("dati.txt",ios::in);
        if (!file)
        {
            cout << "Errore apertura file!";
        }
    
    
        while (!file.eof())
        {
            file.getline (contarighe,10);
            righe++;
    
    
        }
    
    
    
    
        file.seekg(0);
        int i=0;
        while (!file.eof())
        {
            file >> contacolonne;
            i++;
    
    
        }
    
    
        colonne = i/righe;
    
    
    
    
    }
    
    
    
    
    void leggi(int **mat,int righe,int colonne)
    {
    
    
        fstream file;
        file.open("dati.txt",ios::in);
        if (!file)
        cout << "errore apertura file";
        else
        {
            for (int i=0;i<righe;i++)
          {
            for (int j=0;j<colonne;j++)
            {
                file >> mat[i][j];
            }
          }
    
    
         cout << "il file e' stato letto con successo\n";
    
    
        }
    
    
         system("pause");
    }
    
    
    void stampa (int **mat,int righe,int colonne)
    {
        for (int i=0;i<righe;i++)
          {
            for (int j=0;j<colonne;j++)
            {
                cout << mat[i][j] << " ";
            }
             cout << "\n";
          }
        system("pause");
    }
    Ultima modifica di Mrhide1; 25-05-2016 a 12:00

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Perché adesso la funzione restituisce un int quando non è vero? Deve restare void ...

    E al suo interno non puoi usare righe e colonne come se fossero variabili dato che adesso sono puntatori. Scriverai

    (*righe)

    (*colonne)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    77
    e questa modifica in effetti non dovrei farla in tutto il programma? quindi per esempio nell'allocazione dinamica della matrice dovrei mettere (*righe) (*colonne)

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Quote Originariamente inviata da Mrhide1 Visualizza il messaggio
    e questa modifica in effetti non dovrei farla in tutto il programma? quindi per esempio nell'allocazione dinamica della matrice dovrei mettere (*righe) (*colonne)

    No ... solo nella funzione. Nel main devi lasciare

    int righe;
    int colonne;
    Ultima modifica di oregon; 25-05-2016 a 13:24
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #15
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma i puntatori li hai studiati?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #16
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    77
    diciamo che il professore ha detto: " ecco mettete qua un asterisco e questi sono i puntatori servono a...ecc arrivederci e grazie" e nel libro che ci ha consigliato praticamente dice quello che ha detto a lezione,ossia nulla. Comunque grazie oregon finalmente il programma funziona perfettamente,se hai qualche testo o libro che spiega decentemente i puntatori e le loro potenzialità sono più che aperto a suggerimenti

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ok, capisco bene la situazione però, purtroppo, se non conosci le basi dell'utilizzo dei puntatori tutti questi problemini diventano "problemoni".

    Non utilizzate nessun libro di testo per il linguaggio? In ogni testo c'è un capitolo per i puntatori.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #18
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    77
    si lo teniamo ma francamente non l'ho consultato poi chissà quanto,a parte per sapere le varie funzioni per le stringhe(strlen,ecc) e poi ovviamente i vari costrutti if,else e altro ma diciamo che mi sarei potuto risparmiare i soldi di quel libro. Il capitolo sui puntatori è una mezza pagina piena di figure sostanzialmente,quindi ti lascio immaginare il mio essere spaesato su tale argomento.

  9. #19
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ci sarebbe il Deitel&Deitel oppure il K&R ...
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.