Sammen sætning af strings

Tags:    c++

hej jeg er ved at lære c/c++ og jeg er begyndt at læse en toturial hvor der forklares hvordan man laver en txt editor som f.eks. notepad eller notesblokken.

jeg har fundet det sted i filen hvor der skrives hvad den nye fil skal hedde, den der kommer når man trykker på new file... og jeg har lavet en variabel som hedder nu_fil_nr som
indeholder et tal der fortæller om der er tale om den først nye fil eller om der er tale om nummer to eller 3.... hvordan skriver jeg det sammen med tekst.

så jeg har en variabel der hedder

ny fil nr "nu_fil_nr",
jeg har prøvet at skrive
"ny fil nummer:" << nu_fil_nr;
men compileren skriver et eller andet med binær oprarator.

spørgsmål hvordan sætte jeg 2 variabler sammen uden at lægge dem sammen.....


mvh. Jop...



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Du skal først konvertere dit tal til en streng, du kan ikke sammensætte to forskellige variable, du kan se her omkring at konvertere et integer til en streng: http://www.cplusplus.com/ref/cstdlib/itoa.html

Dernest skal du sammensætte dine to strenge, her er lidt omkring strenghåndtering:
http://richardbowles.tripod.com/cpp/cpp16.htm


(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Jeg kan ikke se sammenhængen, men med << ser det ud som om, at du vil skrive det ud:

std::cout << variabel1 << "evt. tekst" << variabel2 << variabel3 << "osv.";

Sådan kan det gøres, hvis det altså ER det du søger efter.

Hvis det er funktionen til at sætte strenge sammen (uden at udskrive det) du leder efter:
http://www.cppreference.com/cppstring_details.html#append

[Redigeret d. 25/03-04 13:31:36 af Christian Knudsen]



Man kan bruge en strstream, f.ex:

Fold kodeboks ind/udKode 




Man kan bruge en strstream, f.ex:

[Snip, strsteam eksempel]



Det er mere korrekt at bruge en stringstream, så slipper man også for at skulle huske at nul terminere sine strenge. strstream er vist udgået af C++ standarden.

Eksemplet med stringstream:

Fold kodeboks ind/udKode 




TAk... man jeg har fundet en løsning...

#include <iostream.h>
#include <string.h>

int main
{
char var_et[] = "hej ";
char var_to[] = "med dig";

strcat(var_et,_var_to);

//skriver "hej med dig"
cout<<var_et;

//venter på input....
cin.get();

return 0;
}




Jop...



TAk... man jeg har fundet en løsning...

#include <iostream.h>
#include <string.h>

int main
{
char var_et[] = "hej ";
char var_to[] = "med dig";

strcat(var_et,_var_to);

//skriver "medhej dig"
cout<<var_et;

//venter på input....
cin.get();

return 0;
}




Jop...


Det er ikke en valid løsning.

char var_et[] = "hej ";

var_et er i dette tilfælde et array af 5 chars.

strcat(var_et,_var_to);

Her tilføjes 7 karakterer til enden af var_et, disse skrives ud over enden på arrayet, derved kan der ske hvad som helst!

Man kan løse dette ved at afsætte nok plads til var_et:

har var_et[12] = "hej ";



t