nahoy Skrevet 18. januar 2006 Skrevet 18. januar 2006 Jeg har en char* variabel, score, og skal få den til å bli "Score: " etterfulgt av variabelen int a. Hvordan?
teflonpanne Skrevet 18. januar 2006 Skrevet 18. januar 2006 bruk strcat til å legge til en tekst til tekst (konkatenering) for å få en int til en streng kan man bruke sprintf. du kan f.eks gjøre sprintf(min_char, "Score: %d", min_int) så slipper du strcat
nahoy Skrevet 18. januar 2006 Forfatter Skrevet 18. januar 2006 av en eller annen grunn klikker programmet mitt når jeg prøver å kjøre det med denne funksjonen i.
dayslepr Skrevet 18. januar 2006 Skrevet 18. januar 2006 (endret) sjekk dette utdraget fra man-siden til strcat: ...The strings may not overlap, and the dest string must have enough space for the result. ... det samme nevnes i sammenheng med sprintf og i sammenheng med andre funksjoner i disse familiene .. vurder om du bør bruke strncat og snprintf o.l. i stedet en annen ting som er greit er å kompilere med -g for så å bruke GDB og titte på backtracen (kall-stakken) når du får segfaults (antar at dette er grunnen til at programmet kræsjer) .. da ser du nemlig hva i koden som trigger kræsjen Endret 18. januar 2006 av dayslepr
dayslepr Skrevet 19. januar 2006 Skrevet 19. januar 2006 d,i The int argument is converted to signed decimal notation. The precision, if any, gives the minimum number of digits that must appear; if the converted value requires fewer digits, it is padded on the left with zeros. The default precision is 1. When 0 is printed with an explicit precision 0, the output is empty. sjekk også: http://www.cplusplus.com/ref/cstdio/printf.html eller standaren: http://www.open-std.org/jtc1/sc22/wg14/www/standards ..direkte link: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf (denne bør du ha liggende til en hver tid)
nahoy Skrevet 22. januar 2006 Forfatter Skrevet 22. januar 2006 std::cout<<"Score: "<<score; 5476737[/snapback] Har ikke lest linkene dayslepr postet, men cout blir galt til det jeg skal gjøre. Bruker sdl_ttf, så det går ikke på den måten.
Peter Skrevet 22. januar 2006 Skrevet 22. januar 2006 Du kan bruke string stream, men spørmålet er mer om du driver med C eller C++. #include <sstream> std::stringstream ss; ss << "Score: " << score; ss.str() <- for å få std::string ss.str().c_str() <- for å få const char*
nahoy Skrevet 23. januar 2006 Forfatter Skrevet 23. januar 2006 jeg bruker c++. Her er noen bokstaver slik at innlegget blir over 14 tegn
Peter Skrevet 23. januar 2006 Skrevet 23. januar 2006 jeg bruker c++. Her er noen bokstaver slik at innlegget blir over 14 tegn 5485118[/snapback] Vel da tror jeg eksempelet jeg ga ovenfor er aktuelt for ditt tilfelle.
GeirGrusom Skrevet 23. januar 2006 Skrevet 23. januar 2006 char buf[20]; // Lag en string på stacken char *dst; char *score_str = "Score:"; unsgned int score = 32767; // Sett et tall som demo memcpy(buf, score, 6); // Skriv "Score:" i de 6 første bokstavene dst = &buf[6]; // Her skal tallet begynne å skrives *dst = 0; // Sett denne til null, for å vise at det er en tom string sprintf(dst, "%d", score); // Denne linjen kan du repetere for å endre score stringen. printf(buf); // skriver til console vinduet
teflonpanne Skrevet 23. januar 2006 Skrevet 23. januar 2006 det er så mye galt med den koden på så mange nivåer at jeg vet ikke hvor jeg skal begynne en gang. jeg kan bare forestille meg hvordan du skriver assembler
GeirGrusom Skrevet 24. januar 2006 Skrevet 24. januar 2006 (endret) Jeg er kjempeflink xor teflonpanne, teflonpanne Har du sett noe bedre? Endret 24. januar 2006 av GeirGrusom
nahoy Skrevet 20. februar 2006 Forfatter Skrevet 20. februar 2006 Har ikke jobbet så mye med dette prosjektet i det siste, men jeg prøvde sprintf. I prosjektet mitt bruker jeg sdl og sdl_ttf og da virket denne ikke . Jeg får bare den klassiske windows-feilmeldinga som sier at det har skjedd noe galt med sdl_ttf og at jeg kan sende feilrapport og blablabla.
Dead_Rabbit Skrevet 20. februar 2006 Skrevet 20. februar 2006 Har du prøvd forslaget til Nazgul? Den burde da funke.
nahoy Skrevet 21. februar 2006 Forfatter Skrevet 21. februar 2006 (endret) Prøvde nazguls forslag, men er ikke sikker på om jeg har forstått det rett... Her er koden min: ... #include <sstream> //for å legge sammen tekst std::stringstream scoretemp; ... scoretemp << "Score: " << orm[p].poeng; scoretemp.str().c_str(); orm[p].scoretext=TTF_RenderText_Solid(scorefont, scoretemp , orm[p].farge); ... Får feilmeldingen: invalid conversion from `void*' to `const char*' EDIT: Liten leif Endret 21. februar 2006 av nahoy
Peter Skrevet 21. februar 2006 Skrevet 21. februar 2006 (endret) (snip) 5639570[/snapback] #include <sstream> //for å legge sammen tekst std::stringstream scoretemp; scoretemp << "Score: " << orm[p].poeng; orm[p].scoretext=TTF_RenderText_Solid(scorefont, scoretemp.str().c_str(), orm[p].farge); c_str() returnerer en const char*, den gjør ikke om selve objektet til en const char* Endret 21. februar 2006 av Nazgul
nahoy Skrevet 21. februar 2006 Forfatter Skrevet 21. februar 2006 Hvordan kan jeg "viske ut" alt det denne variabelen inneholder uten å decleare den på nytt?
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå