Typenumwandlung (Int, String, Cahr[])

Bizkit

Mitglied
Hallo zusammen,

ich brauche etwas hilfe, da ich kein so guter C++ Programmierer bin.

Ich muss Daten in einer Textdatei ausgeben, doch diese Akzeptiert nur den Wert:
const char *str

Nun müsste ich aber so einen ausgeben:
"Fehler: recv, fehler code: %d\n",WSAGetLastError()

Ich sende z.B. an einen Server:
CString SendCommand = "0009TWWB1";
send(s,SendCommand,strlen(SendCommand),0);
rc=recv(s,buf,256,0);

Der Wert vom Server wird hier gespeichert:
char buf[70];
(also in der buf Variable)

Nur wie kann ich die Variable auswerten (Rückgabe Bespiel)
0068TW;000000WB1;20070308;151800;000000000012345;000000000054321

0068TW; = Länge des Rückgabewertes
000000WB1; = Rückeart
20070308; = Datum
151800; = Uhrzeit
000000000012345; = Fortlaufende Nummer
000000000054321; = Auslese Wert


So müsste ich das Auslesen, aber wie, vielleicht hat ja jemnde da ne Hilfe für mich.

Gruß Simon
 
Hi.
Hallo zusammen,

ich brauche etwas hilfe, da ich kein so guter C++ Programmierer bin.

Ich muss Daten in einer Textdatei ausgeben, doch diese Akzeptiert nur den Wert:
const char *str

Nun müsste ich aber so einen ausgeben:
"Fehler: recv, fehler code: %d\n",WSAGetLastError()
Du könntest einen ostringstream benutzen:
C++:
#include <sstream>
...
std::ostringstream errmsg;

errmsg << "Fehler: recv, fehler code: " << WSAGetLastError() << std::endl;
text_ausgabe_funktion(errmsg.str().c_str());
Ich sende z.B. an einen Server:
CString SendCommand = "0009TWWB1";
send(s,SendCommand,strlen(SendCommand),0);
rc=recv(s,buf,256,0);

Der Wert vom Server wird hier gespeichert:
char buf[70];
(also in der buf Variable)
Du übergibst den Wert 256 als Pufferlänge an die recv Funktion, dein Puffer ist aber nur 70 Zeichen lang?! :confused:
Nur wie kann ich die Variable auswerten (Rückgabe Bespiel)
0068TW;000000WB1;20070308;151800;000000000012345;000000000054321

0068TW; = Länge des Rückgabewertes
000000WB1; = Rückeart
20070308; = Datum
151800; = Uhrzeit
000000000012345; = Fortlaufende Nummer
000000000054321; = Auslese Wert
Du könntest einen istringstream benutzen:
C++:
#include <sstream>
#include <string>
...
char buf[] = "0068TW;000000WB1;20070308;151800;000000000012345;000000000054321";
std::istringstream answer(std::string(buf));
std::string val;

while (getline(answer, val, ';')) {
  // val benutzen
}
Gruß

PS: Bitte verwende das nächste mal doch einfach die Code-Tags für den Quelltext (also [c]...[/c] für C, [code=cpp]...[/code] für C++ usw.).
 

Neue Beiträge

Zurück