Benutzer mit den meisten Antworten
Visual Express 2010 Was ist der Fehler hier? (C++ CLI)

Frage
-
Hallo,
ich weiß nicht was ich in meinen Quellcode falsch geschrieben hab:
#include <stdio.h> void main() { int wert,a,b; printf("Geben Sie ein a ein für Addidtionsaufgaben \n"); printf("Geben Sie ein b ein für Subtraktionsaufgaben \n"); scanf("%i",&wert); a=printf("Test a \n"); b=printf("Test b \n"); getchar(); getchar(); getchar(); }
Ich will das wenn man "a" ein gibt das auch nur bestimmte Sätze angezeigt werden und bei b auch, aber es wird Test a und Test b angezeigt.Was für ein Fehler habe ich gemacht?Und wenn ich z.b eine 5 oder ein c eingebe werden auch Test a und Test b angezeigt.
Danke im Vorraus!
- Bearbeitet Pehlivan Dienstag, 18. März 2014 14:40
Antworten
-
Hallo,
zunächst möchte ich sagen das ich C++ nicht mehr als die Syntaktischen Grundlagen behersche und somit folgender Code aus den Hilfedateien (MSDN) erstellt wurde.Es scheint so, als möchtest du ein einzelnes Zeichen einlesen. Dafür eignet sich die getchar-Methode:
char input;//Variable für die Benutzereingabe input = getchar();//einzelnes Zeichen einlesen
Sollte der Benutzer mehrere Zeichen eingeben, dann wird das Erste verwendet.
Und nun kommt der Fehler, warum dein Code nicht funktioniert. Du musst überprüfen, was der Benutzer eingegeben hat. Wenn du das nicht tust, wird einfach beides wieder ausgegeben. Diese Überprüfung kannst du beispielsweise mit einem if-Block realisieren:
if (input == 'a')//Eingabe in einem if-Block Überprüfen { printf("Test a \n"); } else if (input == 'b')//ein weiterer if-Block zur Überprüfung { printf("Test b \n"); } else { printf("Falsche Eingabe!");//Fehlerhafte eingabe }
Die 3 Variablen wert, a und b habe ich entfernt. wet diente zum einlesen, dieser wurde gegen eine char-Variable (für ein Zeichen) ausgetsucht. Ich bezweifle, dass du die Rückgabe von printf verarbeiten willst. Darum habe ich auch a und b entfernt.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Elmar Boye Mittwoch, 19. März 2014 13:55
- Als Antwort markiert Ionut DumaModerator Mittwoch, 19. März 2014 16:20
Alle Antworten
-
Hallo,
zunächst möchte ich sagen das ich C++ nicht mehr als die Syntaktischen Grundlagen behersche und somit folgender Code aus den Hilfedateien (MSDN) erstellt wurde.Es scheint so, als möchtest du ein einzelnes Zeichen einlesen. Dafür eignet sich die getchar-Methode:
char input;//Variable für die Benutzereingabe input = getchar();//einzelnes Zeichen einlesen
Sollte der Benutzer mehrere Zeichen eingeben, dann wird das Erste verwendet.
Und nun kommt der Fehler, warum dein Code nicht funktioniert. Du musst überprüfen, was der Benutzer eingegeben hat. Wenn du das nicht tust, wird einfach beides wieder ausgegeben. Diese Überprüfung kannst du beispielsweise mit einem if-Block realisieren:
if (input == 'a')//Eingabe in einem if-Block Überprüfen { printf("Test a \n"); } else if (input == 'b')//ein weiterer if-Block zur Überprüfung { printf("Test b \n"); } else { printf("Falsche Eingabe!");//Fehlerhafte eingabe }
Die 3 Variablen wert, a und b habe ich entfernt. wet diente zum einlesen, dieser wurde gegen eine char-Variable (für ein Zeichen) ausgetsucht. Ich bezweifle, dass du die Rückgabe von printf verarbeiten willst. Darum habe ich auch a und b entfernt.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Elmar Boye Mittwoch, 19. März 2014 13:55
- Als Antwort markiert Ionut DumaModerator Mittwoch, 19. März 2014 16:20