Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con matrice in classe.
Forum - C/C++ - Problema con matrice in classe.

Avatar
CPT_BLACKBART (Normal User)
Newbie


Messaggi: 2
Iscritto: 13/11/2011

Segnala al moderatore
Postato alle 16:06
Domenica, 13/11/2011
Salve a tutti  :) ;
implementando un programma piu ampio nelle fasi iniziali mi sono imbattuto con un problema assai fastidioso che non sono riuscito a risolvere......
Praticamente devo leggere da file (passato alla funzione come parametro) un determinata matrice....il problema sorge in quanto ogni volta che inserisco la riga letta da file viene riscritta in tutta la matrice per esempio 4352 viene riscritto per 5 volte supponiamo, e sovrascrive le righe precedenti.....se però creo una matrice all'interno della funzione il problema scompare......
:confused:
Codice sorgente - presumibilmente C#

  1. classe::classe (int RIGA1,int COLONNA1)//IMPLEMENTATO IL COSTRUTTORE
  2. { RIGA=RIGA1; COLONNA=COLONNA1 }
  3.  
  4. void classe::LEGGI(ifstream& IN)
  5. {   int i=0;
  6.     string STRINGALETTA;
  7.      int j=0;    
  8.      while (IN.good())
  9.       {      getline(IN,STRINGALETTA);
  10.              for(i=0;i<STRINGALETTA.size();i++)
  11.            {              MATRICE[j][i]=STRINGALETTA.at(i);
  12.            }                     j++;  
  13.        
  14.     }



Codice file header

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  #include <fstream>
  3.  #include<vector>
  4. using namespace std;
  5.  #ifndef classe_h
  6. #define classe_h  
  7. class classe {
  8.  public:classe (int RIGA1,int COLONNA1);//COSTRUTTORE
  9.  void LEGGI(ifstream& IN);          
  10.  private:
  11.    int RIGA;
  12.   int COLONNA;
  13.   char MATRICE[0][0];  
  14.                  };
  15. #endif





Probabilmente ci vorrebbe una matrice dinamica ma non so bene come si usa nelle classi.....Qualcuno saprebbe gentilmente aiutarmi?

Grazie mille per l'aiuto =)!

PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 18:52
Domenica, 13/11/2011
Testo quotato

Postato originariamente da CPT_BLACKBART:
il problema sorge in quanto ogni volta che inserisco la riga letta da file viene riscritta in tutta la matrice per esempio 4352 viene riscritto per 5 volte supponiamo



Molto probabilmente sono io che non riesco a capire. Mi fai un esempio pratico o ancora meglio, posti tutto il codice?

Non riesci ad ottenere questo?
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4.  
  5. int main()
  6. {
  7.     std::ifstream inFile( "MyFile.txt", std::ios::in );
  8.  
  9.     if ( !inFile )
  10.     {
  11.         std::cerr << "Apertura del file non avvenuta" << std::endl;
  12.         return 1;
  13.     }
  14.  
  15.     while ( inFile.good() )
  16.     {
  17.         std::string myStringa;
  18.         std::getline( inFile, myStringa );
  19.         for ( unsigned i = 0; i < myStringa.length(); i++)
  20.             std::cout << myStringa[ i ] << ' '; // qui dovrai salvare in una matrice.
  21.     }
  22.  
  23.     return 0;
  24.  
  25. }



con:
Codice sorgente - presumibilmente Plain Text

  1. $ cat MyFile.txt
  2. ciao a tutti
  3. seconda riga
  4. terza riga



Output
Codice sorgente - presumibilmente Plain Text

  1. $ ./prova
  2. c i a o   a   t u t t i s e c o n d a   r i g a t e r z a   r i g a


Ultima modifica effettuata da Pitagora il 13/11/2011 alle 19:21
PM Quote
Avatar
CPT_BLACKBART (Normal User)
Newbie


Messaggi: 2
Iscritto: 13/11/2011

Segnala al moderatore
Postato alle 18:07
Lunedì, 14/11/2011
Praticamente avevo problemi con la gestione di una matrice dinamica ma ora sono riuscito a metterlo a posto......
Grazie mille per l'aiuto kmnq =D=D

PM Quote