C++ String
lima-city → Forum → Programmiersprachen → C/C++ und D
anwendung
aufruf
code
compiler
erzeugen
externe anwendungen
fehler
klappen
machen
objekt
operator
programm
programmablauf
schleife
string
test
verschiedene aktionen
verwendeten compiler
weglassen
zuweisung
-
Hallo,
Ich habe lange zeit mit C# programmiert.
Jetzt bin ich auf C++ umgestiegen(Versuche), leider hab ich auch schon das erste Problem:
In C# setzt man ein String so:
string strString = "Test";
ich hab jetzt in C++ so ausprobiert:
string strstring = "Test"; und string strstring->"Test";
Leider hat keins von beiden funktioniert.
Die MSDN hab ich schon durchsucht, hab aber nichts gefunden.
Hoffentlich kann mir einer von euch helfen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hast du auch
#include <string>
using namespace std;
geschrrieben?
Dann sollte die erste Version nämlich klappen. -
String ist eine Klasse...
Ensprechend wird auch das Objekt zur Laufzeit angelegt:
String s1("Dies ist ein String");
Müsst eigentlich funktionieren, habs jetzt aber nicht ausprobiert...
Edit:
#include <iostream> #include <string> using namespace std; int main(int argc, char **argv) { string s1("dies ist ein string"); cout << s1 << endl; }
Compiliert mit gcc auf Windows...
Beitrag zuletzt geändert: 18.6.2009 23:27:48 von schrotti12 -
schrotti12 schrieb:
String ist eine Klasse...
Ensprechend wird auch das Objekt zur Laufzeit angelegt:
String s1("Dies ist ein String");
Müsst eigentlich funktionieren, habs jetzt aber nicht ausprobiert...
Edit:
#include <iostream> #include <string> using namespace std; int main(int argc, char **argv) { string s1("dies ist ein string"); cout << s1 << endl; }
Compiliert mit gcc auf Windows...
Na und?
string s1 = "dies ist ein string"; geht trotzdem genauso, und die Methode hat er ja schon selbst vorgeschlagen und sollte ihm auch sehr viel mehr entgegenkommen, da er ja von C# kommt.
Und wenn er
#include <string>
using namespace std;
stehen hat, sollte das eigentlich klappen, deshalb ja die Frage nach seinem Code, da muss eigentlich irgendwas anderes falsch sein. -
Na ja, kommt auf den verwendeten Compiler an... Kann ja auch iwas exotisches sein, welcher den "="-Operator nicht überladen hat und somit diese Zuweisung nicht zulässt... Nicht, dass ichs glaube, aber ich mache die Aufrufe immer über die Konstruktoren, so wies in C++ nunmal üblich ist...
Aber ja, stimmt schon, der ganze Code wäre nicht schlecht. -
und hier die Lösung:
#include <iostream> #include <string> using namespace std; int main() { string s1="dies ist ein string"; cout << s1 << endl; return 0; }
-
warum muss man return 0 schreiben. Das bringt ihm aus der Schleife heraus. Aber warum auch 0?
-
easyhtmlsoftware schrieb:
warum muss man return 0 schreiben. Das bringt ihm aus der Schleife heraus. Aber warum auch 0?
Das macht man um das Betriebssystem über den Programmablauf zu informieren. 0 bedeutet "kein Fehler". Das Programm ist also durchgelaufen ohne einen (fatalen) error zu erzeugen. -
easyhtmlsoftware schrieb:
warum muss man return 0 schreiben. Das bringt ihm aus der Schleife heraus. Aber warum auch 0?
Aus welcher Schleife? Ich sehe in dem Programm keine Schleife.
0 zurückzugeben ist reine Höflichkeit, du kannst auch 42 zurückgeben oder es ganz weglassen (dann kann es aber sein, dass dein Compiler anfängt rumzunörgeln). Interessant wird das ganze nur wenn eine andere Anwendung den Rückgabewert interpretiert. Zum Beispiel ein CMS ruft externe Anwendungen auf und führt in Abhängigkeit vom Rückgabewert verschiedene Aktionen durch. -
Könnte es - ganz banal - sein, dass das Programm keinen fehler ausgibt, sondern "gar nicht erst startet"?
*g*
Falls ja schau dir mal die Funktion getch aus der conio.h an. Oder System("PAUSE") oder oder oder. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage