Visual Studio C++ Fehler E0349 & C2678 in meinem Code

Hundekuchen

Cadet 4th Year
Registriert
Juli 2018
Beiträge
67
Hallo,ich sollte als Aufgabe ein Programm programmieren das folgendes bewerkstelligt :

Abfrage: “Antworten sie mit Ja (j oder J) oder Nein (n oder N):“ Ausgabe: „Sie haben mit Nein geantwortet“, „sie haben mit ja geantwortet“ oder „sie haben eine falsche Eingabe gemacht.“

Mein Code
//

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;
char j;
char n;
int main()

{


cout << " Antworten Sie mit Ja oder Nein : ";
cin >> j >> n;
cout << "Sie haben mit: " << j << "," << n <<

}

Was hier jetzt auch noch fehlt ist wahrscheinlich eine If / Else anweisung um die 3. Option zu bewerkstelligen nur wie ich das implemtieren soll weiß ich nicht aber erstmal den oben genannten Fehler lösen
 
Ist das beim zweiten cout wirklich die ganze Zeile.
Da fehlt in jedem Fall das schließende Semikolon.
 
Dann ändert sich der Fehler E3049 zu es wurde ein Ausdruck erwartet @Ko3nich

Bzw es treten Error E0029 und C2059 auf
Ergänzung ()

Ko3nich schrieb:
Ist das beim zweiten cout wirklich die ganze Zeile.
Da fehlt in jedem Fall das schließende Semikolon.

Ok habs hinbekommen das es gedebuggt wird bzw ausgeführt wird aber es soll ja auch wenn man j oder n eingibt als Antwort Sie haben Ja oder Nein ausgewählt haben stattdessen kommt wenn ich j eingebe kommt die Ausgabe mit sie haben Ja geantwortet nicht bei Nein genau so
 
Zuletzt bearbeitet:
Hi,

das ganze Konstrukt macht keinen Sinn.

ein char ist EIN einzelner Buchstabe. Du musst einen string verwenden.

Die Zeile
cin >> j >> n;

schreibt jetzt, wenn der User "JA" eintippt, das "J" in j und das "A" in n.
Wenn der User NEIN eintippt, ist j="N" und n="E".




Sinn macht nur



#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;
string j;

int main(){

cout << " Antworten Sie mit Ja oder Nein : " << endl;
cin >> j;
cout << "Sie haben mit: " << j << endl;

return 0;
}





Du hast einen int main() definiert, d.h. du musst auch ein int am Ende zurückgeben.
 
lexoon schrieb:
Hi,

das ganze Konstrukt macht keinen Sinn.

ein char ist EIN einzelner Buchstabe. Du musst einen string verwenden.

Die Zeile
cin >> j >> n;

schreibt jetzt, wenn der User "JA" eintippt, das "J" in j und das "A" in n.
Wenn der User NEIN eintippt, ist j="N" und n="E".




Sinn macht nur



#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;
string j;

int main(){

cout << " Antworten Sie mit Ja oder Nein : " << endl;
cin >> j;
cout << "Sie haben mit: " << j << endl;

return 0;
}





Du hast einen int main() definiert, d.h. du musst auch ein int am Ende zurückgeben.
Ah okay aberr die Ausgabe funktioiniert nicht laut deinem Code Wenn man dann j eingibt gibt dieser auch nur j aus dabei soll es Ja ausgeben wenn man j eingibt
 
Du musst dann natürlich auch noch den input auf den richtigen wert mappen. d.h. wenn man j eingibt soll Ja ausgegeben werden.

Das kannst du mit einem Switch case oder einem If then else machen.

Die Aufgabe ist wirklich nicht kompliziert.
 
herliTz_234 schrieb:
Du musst dann natürlich auch noch den input auf den richtigen wert mappen. d.h. wenn man j eingibt soll Ja ausgegeben werden.

Das kannst du mit einem Switch case oder einem If then else machen.

Die Aufgabe ist wirklich nicht kompliziert.
Wenn mans if / else fast noch nie gemacht hat scho a bissl
Ergänzung ()

// Aufgabe7.cpp: Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>



using namespace std;
string j;
char antwort;
int main()


{


cout << "Antworte mit Ja oder Nein j/n\n"; // j/n wird ausgegeben

cin >> antwort;

if (antwort == 'j' || antwort == 'J')
{
cout << "Sie haben mit Ja geantwortet\n";
}
else //Verneinung
{
cout << "Sie haben mit Nein geantwortet\n";
}
else
{
cout << "Sie haben eine falsche Eingabe gemacht";
return 0;
}

Ohne das letze else funktioniert schon mal der Rest, doch wenn ich die falsche eingabe hinzufügen will sagt er mir else ohne zugehöriges if { kein Übereinstimmendes Token + Es wurde eine Anweisung erwartet

[Edit] : Habs selbst gelöst Thread kann geschlossen werden
 
Zuletzt bearbeitet:
Naja if\else das ist die Basis vom programmieren. Die Aufgabe sollst du ja nicht lösen weil dich jemand ärgern will sondern weil du was lernen sollst. Es gibt viele tolle Beispiele im Internet die man sich anschauen kann.

Du duplizierst viel Code das sollte man vermeiden.

C++:
string ausgabeAntwort = "";

if (antwort == 'j' || antwort == 'J')
{
    ausgabeAntwort = "Ja";
}
else if (antwort == 'n' || antwort == 'N')
{
    ausgabeAntwort = "Nein";
}
else
{
    ausgabeAntwort = "Fehlerhafte Eingabe";
}

cout << "Die Antwort lautet " + ausgabeAntwort;
 
Ich glaube nicht, dass deine Art des Lernens so sinnvoll ist. Du solltest dir ein Buch o.ä. nehmen und erst einmal nachlesen, was bestimmte Dinge sind. Danach dann Übungsaufgaben machen um das Gelesene anzuwenden.
Es wirkt (deinen Threads nach zu urteilen) so, als wenn du versuchst nur durch Übungsaufgaben zu lernen. Dafür reihst du Code aneinander in der Hoffnung, dass das Programm macht was es soll. Aber der Lerneffekt ist dabei kaum vorhanden, weil du nicht weißt, warum etwas funktioniert (oder eben nicht funktioniert).

Programmieren lernt man nur durch Verstehen. Um den zuletzt von dir geposteten Code mal auseinander zu nehmen:
Code:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
Weißt du was das bedeutet? Es geht nicht darum, dass du im Detail weißt was in diesen Bibliotheken alles drin steht, aber du solltest schon wissen, was eine Bibliothek so grundsätzlich ist und warum du eine konkrete Bibliothek einbindest.
Wofür bindest du z.B. die conio.h ein? Welche von den Dingen die das Programm macht wären ohne die conio.h nicht möglich? (Analog mit den anderen Bibliotheken)

Code:
string j;
char antwort;
Hier solltest du wissen, was der Unterschied zwischen den beiden Variablen ist und dir sollte klar sein, warum du sie überhaupt anlegst.
Wofür legst du z.B. die Variable "j" an?

Code:
if (antwort == 'j' || antwort == 'J')
{
cout << "Sie haben mit Ja geantwortet\n";
}
else //Verneinung
{
cout << "Sie haben mit Nein geantwortet\n";
}
else
{
cout << "Sie haben eine falsche Eingabe gemacht";
return 0;
}
Lies dir durch, was ein if/else-Konstrukt überhaupt ist. Was das rein logisch bedeutet. Sonst verstehst du nicht, warum dieser Code so keinen Sinn macht. Das er nicht funktioniert ist dir ja klar. Und laut deinem Edit hast du auch eine funktionierende Lösung gefunden. Aber hast du verstanden, was genau an dem Code falsch war?

Das sind Fragen, die du für dich beantworten können solltest, bevor du weitere Aufgaben angehst.
 
  • Gefällt mir
Reaktionen: Ebrithil
Raybeez schrieb:
Ich glaube nicht, dass deine Art des Lernens so sinnvoll ist. Du solltest dir ein Buch o.ä. nehmen und erst einmal nachlesen, was bestimmte Dinge sind. Danach dann Übungsaufgaben machen um das Gelesene anzuwenden.
Es wirkt (deinen Threads nach zu urteilen) so, als wenn du versuchst nur durch Übungsaufgaben zu lernen. Dafür reihst du Code aneinander in der Hoffnung, dass das Programm macht was es soll. Aber der Lerneffekt ist dabei kaum vorhanden, weil du nicht weißt, warum etwas funktioniert (oder eben nicht funktioniert).

Ja ich hab noch einiges zu lernen dennoch das habe ich verstanden

Programmieren lernt man nur durch Verstehen. Um den zuletzt von dir geposteten Code mal auseinander zu nehmen:
Code:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
Weißt du was das bedeutet? Es geht nicht darum, dass du im Detail weißt was in diesen Bibliotheken alles drin steht, aber du solltest schon wissen, was eine Bibliothek so grundsätzlich ist und warum du eine konkrete Bibliothek einbindest.
Wofür bindest du z.B. die conio.h ein? Welche von den Dingen die das Programm macht wären ohne die conio.h nicht möglich? (Analog mit den anderen Bibliotheken)

Code:
string j;
char antwort;
Hier solltest du wissen, was der Unterschied zwischen den beiden Variablen ist und dir sollte klar sein, warum du sie überhaupt anlegst.
Wofür legst du z.B. die Variable "j" an?
Die wird dafür angelegt das if die Antwort in Buchstaben ausgeben kann
Code:
if (antwort == 'j' || antwort == 'J')
{
cout << "Sie haben mit Ja geantwortet\n";
}
else //Verneinung
{
cout << "Sie haben mit Nein geantwortet\n";
}
else
{
cout << "Sie haben eine falsche Eingabe gemacht";
return 0;
}
Lies dir durch, was ein if/else-Konstrukt überhaupt ist. Was das rein logisch bedeutet. Sonst verstehst du nicht, warum dieser Code so keinen Sinn macht. Das er nicht funktioniert ist dir ja klar. Und laut deinem Edit hast du auch eine funktionierende Lösung gefunden. Aber hast du verstanden, was genau an dem Code falsch war?
Wenn dies/jenes passiert tue das sonst das das ist das if/else Konstrukt
Das sind Fragen, die du für dich beantworten können solltest, bevor du weitere Aufgaben angehst.
 
Zurück
Oben