Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    57

    C++ fstream nome con variabile ç_ç

    Ciao rega.. avrei bisogno di una manina.. non ci capisco più na mazza..

    sopratutto con le mie smanie da dev.. che però litiga con visual.. insomma a volte funziona uno e altre funziona l'altro xD

    cmq il problema è che vorrei dare un nome che ogni volta che crea il file con la libreria fstream cambi.. indi per semplificarmi un po la vita.. mi basterebbe per ora solo inserire il nome.. poi per il resto ci penso io.. xD

    il mio tentativo xD:

    #include<iostream>
    #include<fstream>
    using namespace std;
    int main()
    {
    char x[20];

    cout << " immetti nome file " << endl;
    cin >> x;
    x = x + ".doc";
    ofstream file(x.c_str(),ios_base::app);

    file << "nome file" << endl;
    file << x << endl;
    file.close();
    }

    tentativo n. 2 xD:

    #include<iostream>
    #include<fstream>
    using namespace std;
    int main()
    {
    char x[20];
    ofstream file;
    cout << " immetti nome file " << endl;
    cin >> x;

    file.open(x+".doc",ios_base::app);
    file << "nome del programma" << endl;
    file << x << endl;
    file.close();
    }

    errore in entrambe è il + che non po sta ne di qua ne di la, mi dice che non si po mette due puntatori etc...

    come posso fare?

    o ridotto di molto il codice.. se no vi intasavo e incasinavo nella lettura ^^

    vi ringrazio in anticipo

    Dario

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: C++ fstream nome con variabile ç_ç

    Originariamente inviato da E3ddy
    sopratutto con le mie smanie da dev.. che però litiga con visual.. insomma a volte funziona uno e altre funziona l'altro xD
    Il Dev è molto vecchio ... lascialo stare.

    codice:
    #include <string>
    
    ...
    
    string x;
    
    ...
    
    cin >> x;
    x = x + ".doc";
    ofstream file(x.c_str(),ios_base::app);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    57
    nah non fa a caso mio.. purtroppo.. come già detto devo creare la variabine allinterno del nome che carichi es.:

    x=1

    if x<=x

    x++

    ecco che purtroppo string conta apparte il bit prende solo come char,

    quindi il char 1 non può essere addizionato a +1

    altre soluzioni? ç_ç

    tentativo

    #include<iostream>
    #include<string>
    #include<fstream>
    using namespace std;
    int main()
    {



    int y;
    y = 1;


    string x;
    x = "fattura ";
    x = x + y + ".doc";
    ofstream file(x.c_str(),ios_base::app);
    file << "nome del programma" << endl;
    file << x << endl;
    file.close();

    }

    grazie per la risposta cmq ^^

    spero mi aiuterai a risolvere sto inghippo..

    ciau

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Tutto questo

    x=1

    if x<=x

    x++

    ecco che purtroppo string conta apparte il bit prende solo come char,

    quindi il char 1 non può essere addizionato a +1
    non ha senso ... (o io non riesco a tradurlo in una lingua comprensibile ...

    Puoi fare nuovamente la tua richiesta spiegando il problema con una frase di senso compiuto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    57
    Originariamente inviato da oregon
    Tutto questo



    non ha senso ... (o io non riesco a tradurlo in una lingua comprensibile ...

    Puoi fare nuovamente la tua richiesta spiegando il problema con una frase di senso compiuto?
    loooooooooooool

    mmm allora ricominciamo..

    io vorrei che x stia per una variabile d'itero

    tipo int x = 1;

    in modo da creare un ciclo for che addizioni a x (che corrisponde ad "uno") un +1 in modo da farlo diventare 2 e cosi via fino a quando non trova il numero del file da creare.. cioè se ha già creato 30 file.. di nome rispettivamente uguale al primo file il numero 1 alla secondo il 2 e cosi via fino a 30

    cosi che darà il nome 31 al file che sta creando..

    il comando string conta solo caratteri ASCII quindi 1+1 non lo riesce a fare ma al massimo fa 1+1= 11 e non 2

    spero di essermi spiegato ^^

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da E3ddy
    spero di essermi spiegato ^^
    Diciamo che intuito il problema ... di cui non avevi parlato nel primo post ...

    Forse questo suggerimento ti puo' essere utile ...

    codice:
    #include <sstream> 
    #include <string> 
    
    ...
    
        stringstream ss; 
        string x;
        int y;
    
        x = "fattura";
        y = 1;
    	
        ss << x << y << ".doc";
    
        ofstream file(ss.str(), ios_base::app);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    57
    Originariamente inviato da oregon
    Diciamo che intuito il problema ... di cui non avevi parlato nel primo post ...

    Forse questo suggerimento ti puo' essere utile ...

    codice:
    #include <sstream> 
    #include <string> 
    
    ...
    
        stringstream ss; 
        string x;
        int y;
    
        x = "fattura";
        y = 1;
    	
        ss << x << y << ".doc";
    
        ofstream file(ss.str(), ios_base::app);
    credo di esserci riuscito ^^

    grazie cmq la soluzione è (per chi un giorno seguirà questa discusione per motivazioni sue ^^):

    codice:
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <sstream> 
    
    using namespace std;
    int main()
    {
    
    cout << "Vuoi creare una fattura? premi invio, ora o mai piu'" << endl;
    system("PAUSE");
    for ( int y = 0 ; y <= y ; y++)
    {
    
    stringstream ss;
    string x;
    
    ss << "Fattura " << y << ".doc";
    x = ss.str();
    
    
    ofstream file(x.c_str(),ios_base::app);
    file << "nome del programma" << endl;
    file << x << endl;
    file.close();
    
    
    
    cout << "File creato!, Clicca per crearne un'altro... xD" << endl;
    system("PAUSE");
    
    }
    
    
    
    system("PAUSE");
        return (0);
    }
    grazie ancora ^^

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

    Questa

    for ( int y = 0 ; y <= y ; y++)

    non ha senso ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    57
    Originariamente inviato da oregon
    No ...

    Questa

    for ( int y = 0 ; y <= y ; y++)

    non ha senso ...
    ?? non ha senso?

    cioè? la variabile viene aumentata di volta in volta in automatico.. senza che io gli devo assegnare un numero manualmente ^^

    l'unico problema che ho riscontrato è che se riavvio il programma.. devo fare il ciclo tante volte per quante fatture ha già creato..

    cioè non mi crea la fattura ma mi sovrascive la numero 0 - 1 - 2 etc.. m fino a quando non arriva alla fattura che non'è stata ancora creata.. ma li basterà modificare la parte che y viene settata a zero..

    che non'è idea ora.. ma ci posso perdere tranquillamente 10 minuti che forse risolvo ^^

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Scusa se te lo dico ma tu non hai molta esperienza di programmazione, non solo per il C, ma in generale ...

    Un ciclo for non puoi scriverlo in quel modo, perchè vuol dire che non l'hai mai affrontato nello studio. Una espressione logica del tipo

    y<=y

    è sempre vera e non ha senso inserirla come condizione di fine di un ciclo for perchè questo non finirà mai.

    Per quanto riguarda l'altro problema che hai lamentato, ovviamente dipende dal fatto che la variabile riparte dal valore zero ogni volta che inizia il programma, dato che hai scritto

    y=0

    Per farla partire dall'ultimo valore usato, dovresti scrivere tale valore su disco (in un file) prima di terminare il programma e rileggerlo quando lo fai ripartire.
    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.