Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    ehm.. ma gli altri??

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Per il main

    codice:
    #include "TuaClasse.h"
    
    int main()
    {
        File A1;
        A1.ApriFileInScrittura("PROVA.txt", ios::app);
        A1.GeneraID("PROVA.txt");  
        A1.ScriviCampo("PROVA.txt", "Salvatore", 20);
        A1.ScriviCampo("PROVA.txt", "Ciotola", 20);
        A1.ScriviUltimoCampo("PROVA.txt", "UltimoCampo", 20);
    
        getchar();
        getchar();
    
        return 0;
    }
    Per TuaClasse.cpp

    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream> 
    #include "TuaClasse.h"
    
    using namespace std;
    
    void File::ApriFileInScrittura(string NomeFile, std::ios_base::openmode metodo)
    {
    	ofstream write(NomeFile.c_str(), metodo); 
    }   
    
    void File::GeneraID(string NomeFile) 
    {
    	ifstream trovaID("ID.txt", ios::in); //ID.txt file contentente il numero                                     // dell'ultimo ID inserito
    	if(trovaID)
    	{
    		trovaID >> m_ID;
    		m_ID=m_ID+1;
    		trovaID.close();
    	} 
    	else
    		m_ID=1; 
    	         
    	ofstream write(NomeFile.c_str(),ios::app); 
    	write <<"L;";   /* Imposta FLAG per la CANCELLAZIONE LOGICA*/
    
    	///////////////////////////// 
    	stringstream s;      //   
    	string ss;          //          
    	s << m_ID ;          //
    	ss = s.str();     // /* Dimensione dell' ID = 5
    	ss.resize(5);    //  dato che ss.resize(5); */
    	write <<ss;     //
    	//////////////////////  
    	write.close();
    
    	// Aggiorna L'ID che viene scritto sul file ID.txt
    	ofstream aggID("ID.txt", ios::out);  
    	aggID << m_ID;    
    	aggID.close();                    
    } 
    
    void File::ScriviCampo(string NomeFile, string Campo, int DimCampo)
    {
    	ofstream write(NomeFile.c_str(),ios::app);
    	Campo.resize(DimCampo);
    	write << Campo;
    	write.close();    
    }
    
    void File::ScriviUltimoCampo(string NomeFile, string Campo, int DimCampo)
    {
    	ofstream write(NomeFile.c_str(),ios::app);
    	Campo.resize(DimCampo);
    	write << Campo << endl;
    	write.close();    
    }
    Per TuaClasse.h

    codice:
    #include <iostream>
    
    using namespace std;
    
    class File
    {
    private:
    	int m_ID;
    
    public:
    	void ApriFileInScrittura(string NomeFile, std::ios_base::openmode metodo);
    	void GeneraID(string NomeFile);
    	void ScriviCampo(string NomeFile, string Campo, int DimCampo);
    	void ScriviUltimoCampo(string NomeFile, string Campo, int DimCampo);
    };
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    C++ 4ever
    496e2062696e6172696f206e6f6e2063692061767265737469 206e656d6d656e6f2020726f7661746f203a29

  4. #14
    ok raga ho diviso nel seguente modo, ma compilando il main.cpp mi dice:
    [Linker error] undefined reference to `File::ApriFileInScrittura(std::string, std::_Ios_Openmode)'
    [Linker error] undefined reference to `File::GeneraID(std::string)'
    [Linker error] undefined reference to `File::ScriviCampo(std::string, std::string, int)'
    [Linker error] undefined reference to `File::ScriviCampo(std::string, std::string, int)'
    [Linker error] undefined reference to `File::ScriviUltimoCampo(std::string, std::string, int)'
    ld returned 1 exit status

    ecco i tre file.
    Main.cpp
    codice:
    #include "TotiClass.h"
    
    int main()
    {
        File A1;
        A1.ApriFileInScrittura("PROVA.txt", ios::app);
        A1.GeneraID("PROVA.txt");  
        A1.ScriviCampo("PROVA.txt", "Salvatore", 20);
        A1.ScriviCampo("PROVA.txt", "Ciotola", 20);
        A1.ScriviUltimoCampo("PROVA.txt", "UltimoCampo", 20);
    
        getchar();
        getchar();
    
        return 0;
    }
    Toti_class.cpp
    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream> 
    #include "TotiClass.h"
    
    using namespace std;
    
    void File::ApriFileInScrittura(string NomeFile, std::ios_base::openmode metodo)
    {
    	ofstream write(NomeFile.c_str(), metodo); 
    }   
    
    void File::GeneraID(string NomeFile) 
    {
    	ifstream trovaID("ID.txt", ios::in); //ID.txt file contentente il numero                                     // dell'ultimo ID inserito
    	if(trovaID)
    	{
    		trovaID >> m_ID;
    		m_ID=m_ID+1;
    		trovaID.close();
    	} 
    	else
    		m_ID=1; 
    	         
    	ofstream write(NomeFile.c_str(),ios::app); 
    	write <<"L;";   /* Imposta FLAG per la CANCELLAZIONE LOGICA*/
    
    	///////////////////////////// 
    	stringstream s;      //   
    	string ss;          //          
    	s << m_ID ;          //
    	ss = s.str();     // /* Dimensione dell' ID = 5
    	ss.resize(5);    //  dato che ss.resize(5); */
    	write <<ss;     //
    	//////////////////////  
    	write.close();
    
    	// Aggiorna L'ID che viene scritto sul file ID.txt
    	ofstream aggID("ID.txt", ios::out);  
    	aggID << m_ID;    
    	aggID.close();                    
    } 
    
    void File::ScriviCampo(string NomeFile, string Campo, int DimCampo)
    {
    	ofstream write(NomeFile.c_str(),ios::app);
    	Campo.resize(DimCampo);
    	write << Campo;
    	write.close();    
    }
    
    void File::ScriviUltimoCampo(string NomeFile, string Campo, int DimCampo)
    {
    	ofstream write(NomeFile.c_str(),ios::app);
    	Campo.resize(DimCampo);
    	write << Campo << endl;
    	write.close();    
    }
    TotiClass.h
    codice:
    #include <iostream>
    
    using namespace std;
    
    class File
    {
    private:
    	int m_ID;
    
    public:
    	void ApriFileInScrittura(string NomeFile, std::ios_base::openmode metodo);
    	void GeneraID(string NomeFile);
    	void ScriviCampo(string NomeFile, string Campo, int DimCampo);
    	void ScriviUltimoCampo(string NomeFile, string Campo, int DimCampo);
    };

  5. #15
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Se l'hai fatto con DevCpp, forse non hai creato correttamente il progetto ...

    L'ho provato e compila correttamente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #16
    si l'ho ricompilato correttamente. ora funziona

  7. #17
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Forse è una stupidata

    Main.cpp
    #include "TotiClass.h"


    Toti_class.cpp
    #include "TotiClass.h"


    TotiClass.h


    In Main.cpp includi TotiClass.h ed instanzi (ed usi) la tua classe File ma in nessuna parte del programma includi Toti_class.cpp! Non so come funzioni il compilatore di c++ ma credo che l'errore sia dovuto al fatto che non sa dove andare a prendere il codice dei metodi che invochi (infatti l'errore viene dal linker) :master:
    Se ho detto una stupidata correggetemi
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #18
    Non devi compilare singolarmente il main, ma i due .cpp insieme.
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.