ciao a tutti,
sto cercando di capire come funziona la sprintf, ma mi viene qualche dubbio.
dovrei scrivere un programma che poi interagisce con un database sqlite, ma ho solo 3 operazioni da fare
inserire, leggere, cancellare
quindi pensavo di utilizzare 3 stringhe predefinite a cui dare solo i valori in input
molto probabilmente dovrei usare anche un allocazione dinamica per le stringhe, ma al momento non è questo il problema
il programma funziona unca cosa che non capisco perchè assegna un valore sbagliato ad un float che è prefissato
il codice è questo
e al posto di created che dovrebbe essere 234567.542 mi stampa il valore 234567.546875codice:#include <stdio.h> #include <sqlite3.h> main() { sqlite3* db; sqlite3_stmt* result; int i,sel,id,test; char app[20]="nome"; char delete[80]; char read[25]="SELECT * FROM Agenda"; char insert[150]; float created; id=1; created=234567.542; printf("Quale operazione vuoi eseguire? \n"); printf("1-Inserisci nuovi impegni \n"); printf("2-Leggi gli impegni \n"); printf("3-Cancella impegni \n"); scanf("%d",&sel); if(sel==1) { test=sprintf(insert,"INSERT INTO Agenda Values( %d,%s,%f,0,3) \n",id,app,created); printf("%s",insert); } else if(sel==2) printf("%s \n",read); else { scanf("%d",&i); test=sprintf(delete,"DELETE FROM Agenda Where id = %d \n",i); printf("%s",delete); } }
da che dipende??

Rispondi quotando