Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Variabeln zusammen fügen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.09.2003, 18:29 Uhr
NoQ



tach, ich versuche verzweifelt zwei Variablen zusammen zufügen.
da ich früher vb programmiert habe, hab ich in c natürlich null ahnung wie ich das bewerkstelligen soll, noch was ich beachten muss.

char buf[1024];
//also dies hat ich vor, doch es funzt nicht.
buf = inet_ntoa(clients[j].addr.sin_addr) & buf;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.09.2003, 18:37 Uhr
0xdeadbeef
Gott
(Operator)


Au weia. Ne, das kann wirklich nicht hinhauen. & ist in C kein Zusammenfüge-Operator wie in Visual Basic, sondern ein binäres und (wird vor allem für flags verwendet). Bevor du dich damit rumschlägst, solltest du die Sprache ein bisschen besser beherrschen.

In C ginge das so:

C++:
char text[] = "Hello, ";
char text2[] = "World!";
char buffer[1024];
sprintf(buffer, "%s%s", text, text2);


Erklärung: sprintf fasst den ersten Parameter als buffer auf, in den es schreiben kann, den zweiten als Format-String a la printf und alle nachfolgenden als Daten, die es in den String zu schreiben gilt. Einfacher ist es in C++:

C++:
#include <string>

std::string text = "Hello, ";
std::string text2 = "World!";
std::string buffer = text + text2;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.09.2003, 19:06 Uhr
NoQ



Ja, normaler weise würde ich auch in irgend einem Buch nachblättern, aber ich finde irgendwie nicht das passende für mein problem. wobei mir dein erklärung zwar sehr hilft für ander probleme, doch das alte ist noch immer da.

ich wollte es eher so machen:

buffer = text + buffer;

und das buch was ich benutze zeigt mir auch ne andere schreibweise, mit cin und cout für ein- und ausgabe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.09.2003, 19:26 Uhr
0xdeadbeef
Gott
(Operator)


Ach sorum. Hm. Das ist nicht so einfach, weil du in denselben Speicherbereich schreibst, aus dem du auch liest. Was ginge:

C++:
char text[] = "Hello, ", buffer[1024] = "World!";
char buf2[1024];
sprintf(buf2, "%s%s", text, buffer);
strcpy(buffer, buf2);


...aber das ist natürlich schneckenlahm. Wenn du unbedingt wieder in denselben Buffer schreiben musst, kommst du da nicht so ohne weiteres drum herum, deswegen würde ich einfach den anderen Buffer weiterverwenden. In C++ dagegen kannst du das so machen, wie du es dir vorstellst. Die meisten STL-Implementierungen sind auch ziemlich stark optimiert und ziehen da ein paar fiese Tricks mit den Buffern, von daher ist das auch performacetechnisch nicht soo dramatisch.

Naja, eigentlich sind die Tricks mit den Buffern nicht soo fies, aber für nen Anfänger nicht allzuleicht zu durchschauen. Die machen da normalerweise quasi das ganze Speichermanagement von Hand.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 22.09.2003 um 19:31 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: