Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [c++] String e sprintf

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152

    [c++] String e sprintf

    Salve a tutti!
    E' vero che la funzione sprintf non funziona con un paramentro string?
    Perchè ho un codice funzionante :

    char array[1024];
    int m_ordine = 32;
    sprintf(array,"Numero %d\n",m_ordine);


    ma devo, per necessità, cambiare i char con string. Purtroppo
    il codice sotto non funziona.

    string Stringa;
    int m_ordine = 32;
    sprintf(Stringa,","Numero %d\n",m_ordine);


    Come posso ottenere lo stesso risultato??
    Grazie a Tutti!!!
    Ciao
    andry80

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    forse questo:

    codice:
    string Stringa; 
    int m_ordine = 32; 
    sprintf(Stringa.c_str(),","Numero %d\n",m_ordine);
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Purtroppo ho già provato col c_str() ma mi da il seguente errore:

    In function `int main ()':
    cannot convert `const char *' to `char *' for argument
    `1' to `sprintf (char *, const char *, ...)'
    andry80

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    ah, vero ritorna una costante, prova a copiare in un altro non costante:

    codice:
    ...
    char* a = String-c_str();
    ...
    quindi passi a.

    Sennò in C++ c'è un costrutto che forza la modifica di un const, ma nn ricordo quel'è.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Grazie
    andry80

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Ho provato anche con osstringstream in questo modo:

    string conv_to_str(const float& number)
    {
    ostringstream oss;
    oss << number;
    return oss.str();
    }

    main(){
    string stringa;
    float x = 32.25678
    stringa = "numero " + conv_to_str(x) + "\n";
    out << stringa;

    Così funziona , solo che non mi mantiene la formattazione propria del tipo float -> Mi arrotonda a 32.257, e questo, per quello che a me serve , non va bene.
    Grazie
    andry80

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.