10. juni 2003 - 19:05
Der er
11 kommentarer og 1 løsning
linieskift når jeg bruger sprintf?
Hey experter.. Jeg har i min C application brugt sprintf en del gange.. Men når jeg gør det, kommer der et linieskift (?) Det er da lidt irriterende.. Hvad kan jeg gøre ved dette?
Annonceindlæg fra NetNordic
Fjern \n fra din sprintf. Post evt. den kode hvor det går galt.
char cmd[300]; sprintf(cmd, "UPDATE chat_rooms SET numusers='%i' WHERE id='%i'", room[i].numusers, room[i].id); do_sql(cmd); det er jo netop problemet! der er ikke et \n i den.. Det jeg mener er at når jeg kalder sprintf, kommer der et liniefkift i min konsol hvor den kører programmet.. rimeligt nedern
Sært, jeg oplever ikke fænomenet. #include <stdio.h> int main(int argc, char **argv) { char buffer[32]; printf("før sprintf\n"); sprintf(buffer, "vuf %s", "vuf"); printf("efter sprintf\n"); printf("resultat: %s\n", buffer); return 0; } output: f°r sprintf efter sprintf resultat: vuf vuf
Gæt: du har læst data ind med fgets og har ikke trunkeret linieskift af.
Arne: ?? %i står jo for "Signed decimal integer" Der er da ikke noget sted der kan liste sig et linieskift ind i ovenstående kode - af Nomak) ?
Sorry - jeg læste ikke formatet - jeg troede at der var strenge involveret. PS: Hvorfor '' når det er tal ?
okay har fundet ud af at det er i min funktion do_sql(); - det fatter jeg så bare endnnu mindre! int do_sql(char buffer[400]) { mysql_query(mysql_handle, buffer); if (mysql_error(mysql_handle)) { printf("%s\n", mysql_error(mysql_handle)); } return 1; }
udkommenterede do_sql(cmd); og så forsvandt de.. men det er jo ikke fedt når jeg SKAL bruge den funktion
10. juni 2003 - 19:43
#10
Det er den. mysql_error returnerer "" ved ingen fejl. "" er sand. Og derfor skriver den et linie-skift ud !
10. juni 2003 - 20:54
#12
woohaa.. så blev jeg det klogere *G* Takker arne_v :) *tror snart jeg har brugt alle mine points på ham arne* :P
Kurser inden for grundlæggende programmering