string und integer verbinden
-
von string zu const char* kommst du mit der Memberfunktion c_str: MeineCharPointerWollendeFunktion(x.c_str());
<winapi>
BTW ist LPCTSTR potentiell Unicode, darauf sollte man vielleicht achten. Das heißt, es kann je nachdem, ob UNICODE (oder wars _UNICODE?) definiert ist, string oder wstring das richtige sein. Wahrscheinlich wär das beste sowas:typedef std::basic_string<TCHAR> tstring;
</winapi>
-
HumeSikkins schrieb:
std::string ist in der <iostream> oder <stdio.h> afaik
Weder noch.
das da :
#include <iostream> using namespace std; #pragma argsused int main(int argc, char* argv[]) { string holahitidiewaldfee = "blub"; return 0; } //--------------------------------
funktioniert aber bei mir ?
-
1ntrud0r: Abgesehen davon, dass da nirgends string.h noch stdio.h direkt eingebunden werden ... C++ Standard-Header dürfen sich gegenseitig einbinden, also bekommst du z.B. <string> bei <iostream> kostenlos dazu (jedenfalls bei manchen Compilern).
Das ist mir letztens erst über die Füße gefallen, als ich zwar nirgends stdio.h drin hatte, aber trotzdem EOF nicht für was anderes benutzen konnte, weil es als -1 #define'd war.
-
using namespace std; hier norgelt er bei mir rum....
-
Bashar schrieb:
1ntrud0r: Abgesehen davon, dass da nirgends string.h noch stdio.h direkt eingebunden werden ... C++ Standard-Header dürfen sich gegenseitig einbinden, also bekommst du z.B. <string> bei <iostream> kostenlos dazu (jedenfalls bei manchen Compilern).
Das ist mir letztens erst über die Füße gefallen, als ich zwar nirgends stdio.h drin hatte, aber trotzdem EOF nicht für was anderes benutzen konnte, weil es als -1 #define'd war.ahso .. oki wusste ich nicht so dirket
-
@luiggi: Welchen Compiler verwendest Du denn?
-
visual basic c++ 6.0 kann mir jemand ne bessere variante empfehlen
-
Du meinst visual c++ 6 oder visual studio 6. bist du sicher, dass du <iostream> und nicht <iostream.h> geschreiben hast? mit .h steht es nämlich im globalen Raum nicht in std.
-
Den gibts gar nicht, meinst du Visual C++? Das konkrete Programm, wo er bei der using-Direktive rummeckert, würde mich interessieren ... das tut er eigentlich nur, wenn er den Namensraum std nicht kennt. Das heißt, dass du keine Standard-Header eingebunden hast. Wenn du beispielsweise iostream**.h** statt iostream nimmst, und sonst nichts, kennt er std nicht.
Lern es lieber gleich richtig (also ohne .h, und mit Berücksichtigung des Namensraumes).
-
Mit dem .h ist das so eine Sache. Ist zwar nicht Thema, aber wenn er auf Linux, besser gesagt Kylix umsteigt (weiß nicht wie das da bei anderen Compilern f. Linux aussieht) muss er (ganz selten nicht) das .h oder .hpp mitschreiben, da die Header-Datei sonst nicht erkannt wird.
Code-Hacker
-
Wahrscheinlich verwechselst du grade irgendwas. Das .h kann man nicht "weglassen". Wenn du boost/shared_ptr.hpp oder unistd.h einbinden willst, musst du auch <boost/shared_ptr.hpp> bzw. <unistd.h> schreiben. Es ist nur so, dass die Standardheader (iostream, cmath, memory und Co.) kein .h oder .hpp im Namen haben.