[C++] Char und (x) * char Hilfe benötigt!
-
Danke euch sehr für die schnellen Antworten
Hab jetzt 1 Fehler , der Code sieht so aus// Deklaration i,b vom Datentyp int. Initialisierung mit dem wert 0. char eingabe; cout << "Hallo bitte geben Sie Buchstaben von A bis D ein:\n"; cin >> eingabe; if (eingabe==a) { cout << "Sie haben die Buchstabe a eingegeben."; }C:\Programme\Microsoft Visual Studio\MyProjects\Test1\Test1.cpp(27) : error C2065: 'a' : nichtdeklarierter Bezeichner Fehler beim Ausführen von cl.exe.
-
Gracjan schrieb:
HeHe
also naya , die Frage lautet ja , wie kann es den weiter gehen , hab schon nachgelesen das ich char net mit == vergleichen kann ..Doch, kannst du. Was du wahrscheinlich meinst, sind char-Strings, welche man mit strcmp vergleichen muss. Du hast aber lediglich ein einziges Zeichen, das kannst du sehr wohl mit == vergleichen.
char-Strings sind übrigens C und werden in C++ ohne guten Grund nicht verwendet, dafür gibt es std::string. strings kannst du ebenfalls problemlos mit == vergleichen.Außerdem brauchst du nur zwei Header:
#include <iostream>
#include <cstdlib>Die anderen haben da nichts zu suchen. iostream.h gibt es seit gut 11 Jahren nicht mehr, bzw. gab es noch nie, wenn man die Zeit vor dem ersten C++-Standard nicht berücksichtigt. Einen halbwegs aktuellen C++-Compiler zu benutzen, der sowas nicht mehr zulässt, wäre durchaus empfehlenswert.
Edit: die Fehlermeldung sollte dir schon alles sagen. Du hast keine Variable a deklariert, also kannst du sie auch nicht verwenden. Wenn du mit dem Zeichen a vergleichen willst, muss es 'a' lauten.
-
aist für den Compiler ein Symbol, u.a. für eine Variable. Dieses Symbol hast du nirgends, z.B. mitchar a;, definiert. Du willst die Variableeingabemit einem Char-Literal vergleichen. Diese Literale schreibst du innerhalb von single quotes:if(eingabe == 'a')
-
Ok mit dem Lesen von den Buchstaben hats geklapt , wenn ich jetzt a eintippe sagt der mir das ich die buchstabe A eingetippt habe, wie kann ich den jetzt machen das die buchstabe A Multiplikation sein soll ? und das dann mit den 2 Zahlen multipliziert die der Benutzer eingibt ?
-
Gracjan schrieb:
Ok mit dem Lesen von den Buchstaben hats geklapt , wenn ich jetzt a eintippe sagt der mir das ich die buchstabe A eingetippt habe, wie kann ich den jetzt machen das die buchstabe A Multiplikation sein soll ? und das dann mit den 2 Zahlen multipliziert die der Benutzer eingibt ?
Versteh nicht ganz, wo es da Probleme gibt, da du if ja anzuwenden weisst.
if (eingabe=='a') { cout << "Sie haben den Buchstaben a eingegeben. "; cout << zahl1*zahl2 << endl; }Macht natürlich Sinn, das ganze erst nach dem Einlesen der beiden Zahlen zu machen...
-
Mein Code sieht jetzt so aus
int main(int argc, char* argv[]) { // Deklaration i,b vom Datentyp int. Initialisierung mit dem wert 0. char eingabe; cout << "Hallo bitte geben Sie Buchstaben von A bis D ein:\n"; cin >> eingabe; if (eingabe == 'a' ) { cout << "Sie haben die Buchstabe a eingegeben."; } if (eingabe == 'b' ) { cout << "Sie haben die Buchstabe b eingegeben."; } if (eingabe == 'c' ) { cout << "Sie haben die Buchstabe c eingegeben."; } if (eingabe == 'd' ) { cout << "Sie haben die Buchstabe d eingegeben."; } int zahl;; cout << "Hallo bitte geben Sie 2 Zahlen ein:\n"; cin >> zahl; // Programm läuft einwandfrei , es gibt daher 0 zurück. return 0; }
-
Okey, habe mir jetzt Registriert damit ich die Posts Editieren kann..
// egal.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung. // #include "stdafx.h" #include <iostream.h> #include <iomanip.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <iostream.h> #include <conio.h> int main(int argc, char* argv[]) { // Deklaration i,b vom Datentyp int. Initialisierung mit dem wert 0. char eingabe; cout << "Hallo bitte geben Sie Buchstaben von A bis D ein:\n"; cin >> eingabe; if (eingabe == 'a' ) { cout << "Sie haben die Buchstabe a eingegeben."; cout << zahl1*zahl2 << endl; } if (eingabe == 'b' ) { cout << "Sie haben die Buchstabe b eingegeben."; cout << zahl1+zahl2 << endl; } if (eingabe == 'c' ) { cout << "Sie haben die Buchstabe c eingegeben."; cout << zahl1-zahl2 << endl; } if (eingabe == 'd' ) { cout << "Sie haben die Buchstabe d eingegeben."; cout << zahl1/zahl2 << endl; } int zahl;; cout << "Hallo bitte geben Sie 2 Zahlen ein:\n"; cin >> zahl; // Programm läuft einwandfrei , es gibt daher 0 zurück. return 0; }@Edit
bekomme am ende ein ErrorC:\Programme\Microsoft Visual Studio\MyProjects\Test1\Test1.cpp(64) : fatal error C1004: Unerwartetes Dateiende gefunden Fehler beim Ausführen von cl.exe.die letzte >Zeile
-
// egal.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung. // #include "stdafx.h" #include <iostream.h> #include <iomanip.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <iostream.h> #include <conio.h>Reduziere das auf
#include <iostream>
<iostream.h> gibt es nicht mehr (schlechter Stil) und die anderen Inclusions sind total sinnfrei, mit Ausnahme von "stdafx.h"
if (eingabe == 'a' ) { cout << "Sie haben die Buchstabe a eingegeben."; cout << zahl1*zahl2 << endl; } if (eingabe == 'b' ) { cout << "Sie haben die Buchstabe b eingegeben."; cout << zahl1+zahl2 << endl; } if (eingabe == 'c' ) { cout << "Sie haben die Buchstabe c eingegeben."; cout << zahl1-zahl2 << endl; } if (eingabe == 'd' ) { cout << "Sie haben die Buchstabe d eingegeben."; cout << zahl1/zahl2 << endl; }Und wo wurde zahl1 bzw zahl2 definiert?
Und selbst wenn, hat der User überhaupt scchon etwas eingegeben? Offensichtlich nicht.Außerdem würde es so doch schöner aussehen:
cout << "Sie haben den Buchstaben " << eingabe << " eingegeben."; switch(eingabe) { case 'a': cout << zahl1*zahl2 << endl; break; case 'b': ....... }Der Code ist imo (sorry, nicht böse gemeint) schlecht, allein schon das Header inkludieren zeigt dass du nicht wirklich weißt was du da machst...
-
Ja danke dir (:
Aber mit SWITCH Arbeite ich lieber noch nicht , sonst denkt der Chef ich kann das schon:-P
Aktueller Code:
#include <cstdlib> #include <stdlib.h> int main(int argc, char* argv[]) { // Deklaration i,b vom Datentyp int. Initialisierung mit dem wert 0. int zahl, zahl1, zahl2; char eingabe; cout << "Hallo bitte geben Sie Buchstaben von A bis D ein:\n"; cin >> eingabe; if (eingabe == 'a' ) { cout << "Sie haben die Buchstabe a eingegeben."; cout << zahl1*zahl2 << endl; } if (eingabe == 'b' ) { cout << "Sie haben die Buchstabe b eingegeben."; cout << zahl1+zahl2 << endl; } if (eingabe == 'c' ) { cout << "Sie haben die Buchstabe c eingegeben."; cout << zahl1-zahl2 << endl; } if (eingabe == 'd' ) { cout << "Sie haben die Buchstabe d eingegeben."; cout << zahl1/zahl2 << endl; cout << "Hallo bitte geben Sie 2 Zahlen ein:\n"; cin >> zahl; // Programm läuft einwandfrei , es gibt daher 0 zurück. return(0); }
-
#include <cstdlib> #include <stdlib.h>1. header brauchst du nicht
2. gibt es nicht
3. hast du den vergessen, den du brauchst->
#include <iostream>falls du mit vorkompiliertem header arbeitest, fehlt ganz oben noch ein
#include "stdafx.h"int main(int argc, char* argv[])brauchst du nicht
int main()reicht da
if (eingabe == 'd' ) { cout << "Sie haben die Buchstabe d eingegeben."; cout << zahl1/zahl2 << endl;hier fehlt ne klammer (
})...return(0);die klammern da sind unnötig - und das return 0 in der main-fkt ist auch unnötig...
das wars zwar noch lange nicht, aber vorerst sind das wohl genug fehler^^
bb