Gå til innhold

legge sammen tekst?


Anbefalte innlegg

Videoannonse
Annonse

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 av dayslepr
Lenke til kommentar
      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
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
  • 4 uker senere...

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

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 av nahoy
Lenke til kommentar
(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 av Nazgul
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...