Unterschied-> cout vs WriteLine Frage

FoxViper

FoxViper

Goupner
hi,
vorab, ich bin Anfänger und bemühe mich die Sprache zu erlernen :hilfe2:

Problem:

Code:
#Char eingabe;
#cin >> eingabe;
#cout << eingabe;
#return 0;

erzeugt einen Fehler bei mir

Code:
#Char eingabe;
#eingabe=Console::Read();
#cout << eingabe;
#return 0;

erzeugt kein Fehler aber eben nur die Ausgabe in Int-Form
also als Zahl

Code:
#Char eingabe;
#eingabe=Console::Read();
#Console::Write(eingabe);
#return 0;

Funktioniert ohne Probleme!

Wieso gibt es da diese Unterschiede?
warum ist eine Ausgabe mit "cout" nicht korrekt möglich?


ich stehe da echt auf nen Schlauch, versteh das einfach nicht :headup:


greets
 
Code:
#Char eingabe;
#cin >> eingabe;
#cout << eingabe;
#return 0;

erzeugt einen Fehler bei mir
Und welchen? Der Code an sich sieht korrekt aus.

Code:
#Char eingabe;
#eingabe=Console::Read();
#cout << eingabe;
#return 0;

erzeugt kein Fehler aber eben nur die Ausgabe in Int-Form
also als Zahl

Code:
#Char eingabe;
#eingabe=Console::Read();
#Console::Write(eingabe);
#return 0;

Funktioniert ohne Probleme!
'Console::Read()' sieht mir nicht nach Standard-C++ aus. Koennte es sein, dass Du unter Windows programmierst? Versuche doch, dem Standard treu zu bleiben und gibt uns zunaechst den Fehler an, den Du mit dem ersten Code-Fragment erhaeltst, damit man dort angreifen kann. Mit Windows kennen sich wahrscheinlich nicht sehr viele in diesem Forum aus.

Zu Deinem zweiten Code-Fragment: Falls Du eine Ausgabe als char und nicht als int haben moechtest, musst Du vorher 'casten', d.h.,
Code:
std::cout << char(eingabe);
 
hi,

also ich nutzte einmal SuSe und auf Lappi Win+VS C++ 9.0
und ja der Quellcode stammt aus VS 9.0

aber ich dachte bisweilen das C übergreifend arbeiten kann, sprich auf unterschiedlichen BS? nun das ist dann wohl nicht so X(

zur allg. Aufgabe:
es ging mir darum ein Zeichen (Buchstabe) einzulesen und dieses dann wieder ausgeben, um zu sehen ob dies mit eine Char-Variable möglich ist.

im Quellcode
Code:
cout <<
cin >>

kommt folgende Fehlermeldung
Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanten vom Typ 'wchar_t' akzeptiert. (oder keine geeignete Konvertierung möglich)

warum muss ich 'casten' ?
der Datentyp ist doch Char, dieser Typ speichert doch intern 8 Bit (-127 bis 128 ), ?(

Code:
#Char eing;

#eing = Console::Read();
#//cin >> eing //geht nicht;

#cout << char(eing) << endl;
#return 0;

das funktioniert auch super, nur wenn ich den 'cin' Befehl nutze, verweigert mir VS 9 ein debuggen

wie kann ich denn dieses mit ohne den "Console::Read" Befehl bewerkstelligen?

greets
 
Hi,

C++ ist case-sensitive, der Datentyp den du suchst ist char nicht Char. Char scheint bei dir ein alias fuer wchar_t zu sein, also ein 2 byte char, d.h. ein unicode character.

Fuer eine ausfuehrlichere Antwort bin ich grad zu faul, hatte n scheiss Arbeitstag. ;p

mfg,
bytepool
 
Zuletzt bearbeitet:
Tag,
C/C++ arbeitet Plattformübergreifend.
Du musst dich nur an den standart halten.

Ich würde dir empfehlen das VS Studio auf dem Windows Rechner zu entfernen und stattdessen das gleiche zu verwenden das du auch unter Linux verwendest.
Den GCC gibts unter Windows auch und nennt sich MinGW.
Hatte nämlich auch einmal VS und das hat mir immer Windows zeugs mit eingebunden.

MFG ReduX08
 
ich nutze auf Arbeit auch VS und dort hat tatsächlich MS seinen eigenen Standard definiert. Dieser weicht ein wenig vom ANSI und nutzt auch Aliases für betimmte Datentypen. Wenn du aber ein leeres Projekt startest und alles laut ANSI eingbst funktioniert dasauch in VS. Der Datentyp char wird IMMER klein geschrieben. Desweiteren gehören die Operatoren ">>" und "<<" zu "iostream", welches du erstmal einbinden musst. Dazu verwendest du ein "include <iostream". Falls das Problem weiterhin besteht, poste mal dein ganzes Code.
 

Ähnliche Themen

String auf Konsole ausgeben

wirre zeichen :(

C Funktion in einer Schleife ausführen (Funktion wird nur 1 mal ausgeführt)

CGI laesst sich nicht ausfuehren

Zurück
Oben