Probleme mit cin
-
gib mal return 0; hinten dran,dann gehts

Example:#include <iostream> using namespace std; int main () { string hallo; cin>>hallo; cout<<hallo<<endl; return 0; }
-
Jo und dann würde das heißen, das er einen Kompiler benutzt, der sich nicht an den Standard hält. return 0 ist bei einer main Funktion nach Standard nicht notwendig.
#include <iostream> #include <string> int main() { std::string my_string; std::getline(std::cin, my_string); std::cout << my_string << std::endl; return 0; }Wäre wohl die sauberste Lösung. Du hattest im Übrigen noch einen Header vergessen.
-
Wäre wohl die sauberste Lösung. Du hattest im Übrigen noch einen Header vergessen.
Ups, das war dann doch schon die Müdigkeit, sry klar gehört noch string dazu ...
MfG mikey.
-
Mit string funktionierts erstmal. Danke! Aber kann ich das ganze nicht mit Ansistrings machen? Oder funktioniert cin da nicht?
-
sry,hab auch <string>-Bibliothek vergessen

sry
-
Was verstehst du unter ANSI-Strings?
Aja UNICODE geht nat auch...
#include <iostream> #include <string> int wmain() { std::wstring my_string; std::getline(std::wcin, my_string); std::wcout << my_string << std::endl; return 0; }
-
vampyric_angel schrieb:
Ich habe ein Problem mit cin und zwar wenn ich in einem Programm cin habe und dieses ausführe und er kommt zu dem Befehl cin dann kann ich in der Konsole eingeben was ich will aber er macht nicht im Programm weiter egal wie oft ich die Entertaste drücke. Woran kann das liegen? Funktioniert cin mit Ansistrings nicht?
Hier mal ein kleines Beispielprogramm bei dem ich wie erwähnt drücken kann was ich will ohne das er die Befehle nach cin ausführt:#include <iostream>
#include <vcl.h>
using namespace std;main()
{
String hallo;
cin >> hallo;
cout << hallo;
}Achja ich benutze den Borland C++Builder 2006!
AnsiString ist AnsiString nicht String ...
AnsiString hallo; cin >> hallo; cout << hallo;BCB sollte AFAIR einen überladen op << >> für AnsiStrings haben

-
Danke! Mein eigentliches Programm funktioniert soweit. Ich hab nur noch ein Problem:
Ich bastel mir einen UPN-Rechner der in einer Konsole ausgeführt wird und will jetzt die Eingaben überprüfen. Kann ich das irgendwie per switch case machen? Da kann man doch eigentlich nur einzelne Zeichen überprüfen ich brauch aber eine Überprüfung eines Strings da ich noch Funktionen wie "inv", "sqr" usw. in meinem Rechner einbauen muss.
-
Was ist ein UPN Rechner ?
-
UPN(umgedrehte polnische Notation) auch Postfixnotation genannt! Wenn du z.B. 3 und 4 addierst schreibst du zuerst die Zahlen und dann das Operationssymbol. Also:
3 4 +
Steht auch alles bei Wikipdia@Freak_Coder
Aber wenn ich String schreibe also am Anfang groß ist es doch Ansistring oder? Klappt zumindest genau so wenig. Wie gesagt kann so oft auf die Entertaste drücken wie ich will es geht nicht weiter!
-
swich case funktionniert nicht mit strings. Bastel dir da halt eine laenger if-ele Kette zusammen
if(s=="sqr"){ //... } else if(s=="sqrt"){ //... } //usw
-
So hab ich es ja zur Zeit. Gibt es da denn keine andere Möglichkeit? Ich weiß nicht aber das sieht doof aus!
-
Das sauberste wäre: http://www.boost.org/libs/spirit/index.html

-
:Daniel: schrieb:
gib mal return 0; hinten dran,dann gehts

...Braucht's (für mich überraschenderweise) gar nicht.
Lt. Standard darf ein "return 0" bei main() weggelassen werden ...Gruß,
Simon2.
-
Simon2 schrieb:
Braucht's (für mich überraschenderweise) gar nicht.
Lt. Standard darf ein "return 0" bei main() weggelassen werden ...Mann sollte auch mal lesen was hier schon geschrieben wurde.
(D)Evil schrieb:
Jo und dann würde das heißen, das er einen Kompiler benutzt, der sich nicht an den Standard hält. return 0 ist bei einer main Funktion nach Standard nicht notwendig.
-
(D)Evil schrieb:
Simon2 schrieb:
Braucht's (für mich überraschenderweise) gar nicht.
Lt. Standard darf ein "return 0" bei main() weggelassen werden ...Mann sollte auch mal lesen was hier schon geschrieben wurde.
(D)Evil schrieb:
Jo und dann würde das heißen, das er einen Kompiler benutzt, der sich nicht an den Standard hält. return 0 ist bei einer main Funktion nach Standard nicht notwendig.
Oh, habe ich Deine wertvolle Zeit verschwendet ?

Unerwartetes darf man auch doppelt schreiben und Richtiges wird dadurch auch nicht "fälscher" ....Gruß,
Simon2.