Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    100

    apertura e scrittura di più file [C++]

    Salve, il problema è questo.
    Ho un codice contenente le seguenti istruzioni:

    ofstream transition_file("transizioni.txt", ios::app);

    transition_file << "ciao" << endl;

    ora, invece del solo file transizioni.txt vorrei fargli aprire più file, identificati da un intero:

    quindi alle fine non voglio avere solo transizioni.txt ma:

    transizioni1.txt
    transizioni2.txt
    .
    .
    .
    e così via... coin int N=10. (quindi mi deve creare 10 file). Come posso fare? spero di essere statao chiaro.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Si tratta di creare, in un ciclo for, una stringa con il numero e utilizzarla per la ofstream al posto della costante ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    100
    esatto ma non so come farlo in c++, o meglio non so con quale sintassi.

    come posso dirgli di prendere una variabile e inserirla nel nome del file?

    for(int i=0;i <N; i++)
    ofstream transition_file("transizioni.txt %s" i, ios::app);

    ?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Dato per scontato che userai

    codice:
    #include <iostream>
    #include <string>
    #include <sstream>
    
    using namespace std;
    quindi

    codice:
    string file;
    stringstream fn;
    
    for(int i=1; i<=10; i++)
    {
       fn.str("");
       fn << i;
       file = "transizioni" + fn.str() + ".txt";
    
       ofstream transition_file(file, ios::app);
    
       ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    100
    ciao, ho fatto cme dici ma dà come errori:

    error: no matching function for call to ‘std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(std::string&, const std::_Ios_Openmode&)’
    /usr/include/c++/4.3/fstream:572: note: candidates are: std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/fstream:556: note: std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/c++/4.3/iosfwd:89: note: std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(const std::basic_ofstream<char, std::char_traits<char> >&)
    applications/udpapp/UDPClusterApp.cc: In member function ‘virtual void UDPClusterApp::finish()’:
    applications/udpapp/UDPClusterApp.cc:465: warning: comparison between signed and unsigned integer expressions

    dove la riga d errore è:

    ofstream NomeClasse::transition_file(file,ios::app);

    (li sto usando in modo static)

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Questa parte

    codice:
    #include <iostream>
    #include <string>
    #include <sstream>
    
    using namespace std;
    l'hai inserita all'inizio del tuo codice ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    100
    certo, infatti se metto la parola file tra grappette: "file" compila senza problemi

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Deve essere

    ofstream transition_file(file.c_str(), ios::app);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    100
    dunque il codice completo purteroppo non lo posso postare,

    nell header:

    #include <string>
    #include <sstream>
    #include <iostream>
    #include <fstream>

    e nella classe

    static string file;
    static stringstream fn;


    nel .cc:

    all esterno:

    string NomeClasse::file;
    stringstream NomeClasse::fn;

    nella funzione:

    fn.str("");
    fn << 2;
    file = "transizioni" + fn.str() + ".txt";

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Ho modificato la mia ultima risposta ... rileggila.
    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.