nahoy Skrevet 18. januar 2006 Del Skrevet 18. januar 2006 Jeg har en char* variabel, score, og skal få den til å bli "Score: " etterfulgt av variabelen int a. Hvordan? Lenke til kommentar
teflonpanne Skrevet 18. januar 2006 Del 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 Lenke til kommentar
nahoy Skrevet 18. januar 2006 Forfatter Del Skrevet 18. januar 2006 av en eller annen grunn klikker programmet mitt når jeg prøver å kjøre det med denne funksjonen i. Lenke til kommentar
dayslepr Skrevet 18. januar 2006 Del 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 Lenke til kommentar
nahoy Skrevet 19. januar 2006 Forfatter Del Skrevet 19. januar 2006 et kjapt spørsmål: hva betyr %d Lenke til kommentar
dayslepr Skrevet 19. januar 2006 Del 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) Lenke til kommentar
X0r Skrevet 21. januar 2006 Del Skrevet 21. januar 2006 std::cout<<"Score: "<<score; Lenke til kommentar
nahoy Skrevet 22. januar 2006 Forfatter Del 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. Lenke til kommentar
Peter Skrevet 22. januar 2006 Del 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* Lenke til kommentar
nahoy Skrevet 23. januar 2006 Forfatter Del Skrevet 23. januar 2006 jeg bruker c++. Her er noen bokstaver slik at innlegget blir over 14 tegn Lenke til kommentar
Peter Skrevet 23. januar 2006 Del 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. Lenke til kommentar
GeirGrusom Skrevet 23. januar 2006 Del 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 Lenke til kommentar
teflonpanne Skrevet 23. januar 2006 Del 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 Lenke til kommentar
GeirGrusom Skrevet 24. januar 2006 Del Skrevet 24. januar 2006 (endret) Jeg er kjempeflink xor teflonpanne, teflonpanne Har du sett noe bedre? Endret 24. januar 2006 av GeirGrusom Lenke til kommentar
nahoy Skrevet 20. februar 2006 Forfatter Del 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. Lenke til kommentar
Dead_Rabbit Skrevet 20. februar 2006 Del Skrevet 20. februar 2006 Har du prøvd forslaget til Nazgul? Den burde da funke. Lenke til kommentar
nahoy Skrevet 21. februar 2006 Forfatter Del 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 Lenke til kommentar
Peter Skrevet 21. februar 2006 Del 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 Lenke til kommentar
nahoy Skrevet 21. februar 2006 Forfatter Del Skrevet 21. februar 2006 Takk, nå virker det Lenke til kommentar
nahoy Skrevet 21. februar 2006 Forfatter Del Skrevet 21. februar 2006 Hvordan kan jeg "viske ut" alt det denne variabelen inneholder uten å decleare den på nytt? Lenke til kommentar
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å