Uso funzione sprintf

di il
20 risposte

Uso funzione sprintf

Buonasera,
dovrei inviare dei dati di temperatura (letti da un sensore) ad un server tramite una richiesta HTTP POST e una stringa JSON. il problema è che dovrei convertire i valori float della temperatura in una stringa da poter inserire nel body della richiesta. Dovrei farlo tramite una funzione "sprintf" ma non saprei come fare.



cercando su dei libri di programmazione in C ho provato a scriverlo in questo modo:

char data [30];
sprintf( data ,"data : %.2f %%",temperature);
const char body[] = "{ \"sensor_type\":\"temperature\", \"data\"}";
Grazie per l' aiuto!

20 Risposte

  • Re: Uso funzione sprintf

    Hai provato e quindi?
  • Re: Uso funzione sprintf

    Non funziona, sicuramente ho sbagliato qualcosa e non ho capito come funziona la sprintf.
  • Re: Uso funzione sprintf

    La sprintf è usata correttamente. Non si capisce cosa tu voglia fare con la riga successiva. Comunque se non ti spieghi meglio su cosa non funziona non si potrà dire molto di più.
  • Re: Uso funzione sprintf

    Avevo specificato che si tratta di una richiesta HTTP POST da inviare al server, tramite una stringa JSON. Essendo il valore di temperatura una variabile float ho dovuto convertirlo in una stringa tramite la sprintf. Se mi dici che la sprintf è scritta correttamente ci sarà sicuramente un mio errore nella richiesta HTTP. Volevo solo la conferma che la sprintf fosse giusta. Quindi ho salvato il valore della temperatura nella stringa "data" nel modo in cui l'ho scritto io?
    grazie
  • Re: Uso funzione sprintf

    Quello che avevi specificato l'avevo capito. Ripeto ...la sprintf va bene e potevi controllare la stringa data subito dopo la sua esecuzione per saperlo...

    la seconda riga non so perché l'hai postata ma non ha a che vedere con la sprintf, in body NON troverai il risultato della variabile data ma semplicemente la stringa \data\ perch* body è una costante.

    Ripeto ... non si può dire altro
  • Re: Uso funzione sprintf

    Oltre al fatto che sitatticamente la stringa e' pure un pezzo di JSON ""NON VALIDO"": mancano le virgolette in "data" e c'e' un '%' che non centra un piffero!

    Ma che centra il C++ con JSON?

    Mah! Boh! Chissa'!

    In pratica: HAI CONTROLLATO DI GENERARE UNA STRINGA VALIDA?

    Ovviamente NO!

    Quindi: RI-CONTROLLA!!!!
  • Re: Uso funzione sprintf

    Non ho mai usato la funzione sprintf ed ero qui proprio per chiedere aiuto in questo. Il body della richiesta HTTP l ho inserito pensando fosse più chiaro dove avrei dovuto utilizzare la stringa. Detto questo grazie ugualmente...
  • Re: Uso funzione sprintf

    Ugualmente? Non capisci questo atteggiamento.
    La stringa data l'hai usata correttamente nella sprintf ma non certo nell'altra riga.

    Comunque per me la questione è chiusa.
  • Re: Uso funzione sprintf

    @natalia99: continui a non capire, ma va bene lo stesso.

    NON C'ENTRA NIENTE la "sprintf"!! Quella E' USATA in modo CORRETTO.

    SE non funziona e' PER COLPA DI TUTTO IL RESTO!!

    Oltre la fatto che la ""scusa"" non l'ho mai usata prima non ha senso!
    Si va a leggere la documentazione.
    Noi, mica nasciamo con le conoscenze di TUTTE le librerie software esistenti sulla faccia della terra!!
    Ogni volta andiamo a caccia di informazioni, leggendo/studiando la documentazione.
    E FACENDO qualche esperimento per vedere se abbiamo capito!
  • Re: Uso funzione sprintf

    Forse se sono qui è perchè ho cercato e mi sono informata ma non ho trovato soluzione. Purtroppo non ho neanche tutti i libri di programmazione qui con me , altrimenti lo avrei fatto prima di scrivere qui.. Detto questo vi ringrazio ma non capisco questo modo di rispondere quando non mi sembra di aver fatto nulla di sbagliato, se non chiesto aiuto su una cosa che so benissimo di non conoscere, altrimenti non sarei qui
  • Re: Uso funzione sprintf

    Guarda che sin dall'inizio ti sei posta malissimo. E sei uno dei pochi casi.

    Comunque la sprintf è a posto, quindi problema risolto.

    E per la cronaca, se hai dubbi con una singola funzione, il libro non ti serve. Con una ricerca trovi facilmente tutto

    http://www.cplusplus.com/reference/cstdio/sprintf

    (hai cercato e non hai trovato?)
  • Re: Uso funzione sprintf

    Grazi per il link. Posta malissimo nel spiegare il mio dubbio sicuramente, ma non nel modo di pormi... anzi credo di essere stata educata.
  • Re: Uso funzione sprintf

    Scrivere

    "Avevo specificato ..." e ripetere la domanda a cui si è avuta espressamente risposta nel post precedente significa dire all'interlocutore "non hai capito nulla ti ripeto la domanda".

    Buon lavoro.
  • Re: Uso funzione sprintf

    Non volevo assolutamente dire che tu non avessi capito, ma anzi volevo spiegare meglio quello che avevo scritto. Se qui c'è qualcuno che non ha capito sono sicuramente io, perchè non ero riuscita a trovare la soluzione al mio problema cercando in internet. Se è sembrato così con il mio messaggio chiedo scusa. Grazie e buon lavoro anche a voi
Devi accedere o registrarti per scrivere nel forum
20 risposte