JA oder NEIN Eingabe weiter verwenden
-
Tag bin beim meinem consolen Programm auf ein problem gestossen (Anfänger) will bei JA oder Nein Frage angekommen und will natürlich die antwort weiter verwenden mit zB einer IF Funktion wer kann mir ein beispiel schicken, wäre sehr dankbar dafür!!!
-
Ganz kurzes Beispielfragment
cout<<"Wollen Sie weitermachen (j/n)?\n"; char ans;cin>>ans; if(tolower(ans)!='j') exit(0); else cout<<OK, dann geht es hier weiter.\n";(PS: if ist keine Funktion, sondern ein Befehl ;))
-
a statt cout benutze ich printf ist das oK, ???
-
kannst du machen (und erhältst damit das selbe Ergebnis), aber cin/cout ist typsicherer ;).
-
char ans;
printf("Wollen Sie weitermachen (j/n)?\n");
scanf("%c",ans);
if(tolower(ans)!='j')
exit(0);
else
printf("OK, dann geht es hier weiter.\n");
}
getch();dann kommt eine fehlermeldung!!
kannst du den Fehler erkennen, es steht noch data definition has no type or storage classwas bedeutet "tolower"
-
In welcher Zeile kommt denn der Fehler? Ich würde ja darauf tippen, daß eine wichtige Header-Datei fehlt (leider weiß ich nicht aus dem Kopf, in welcher tolower() untergebracht ist).
-
ich grad gekuckt das die zeile
scanf("%c",ans);
den fehler verursacht,
-
Und da haben wir schon den Übeltäter - scanf ist ein Relikt aus C-Zeiten und benötigt deshalb keine Referenz, sondern pointer: "scanf("%c",**&**ans);"
-
jetzt wird das programm geschlossen
ist eine Consolen anwendung/*
a=Alter
b=Antwort
*/
main() {
int a;
char b;
printf("Wollen Sie weitermachen (j/n)?\n");
scanf("%c",&b);
sleep(5000); //nach 5 sec wird das Programm geschlossen
printf("hint");
if(tolower(b)!='j')
printf("\nOk oK");
else
printf("OK, dann geht es hier weiter.\n");
}
getch();
-
Die Auswertung, was nach der jeweiligen Antwort geschieht, bleibt natürlich dir selber überlassen
Im einfachsten Fall ist das eine if()-Abfrage ("'j' gedrückt = JA" vs. "andere Taste gedrückt = NEIN"), für komplexere Entscheidungen kannst du auch switch/case verwenden oder längere Antworten mittels std::string (notfalls auch mit char* und strcmp,... - aber wozu haben wir die STL, wenn wir sie nicht nutzen wollen?) auswerten.
-
-
do_this_for_the_school schrieb:
scanf("%c",&b); sleep(5000); //nach 5 sec wird das Programm geschlossenunnötig, weil scanf blockierend ist - so wie die fast alle stdlib funktionen.
-
terraner schrieb:
do_this_for_the_school schrieb:
scanf("%c",&b); sleep(5000); //nach 5 sec wird das Programm geschlossenunnötig, weil scanf blockierend ist - so wie die fast alle stdlib funktionen.
öhm ist scanf nicht aus der stdio -.-
-
Nur so nebenbei: Für tolower braucht ihr nen unsigned char und nicht char.
-
shapeless schrieb:
öhm ist scanf nicht aus der stdio -.-
stdio.h (GCC 3.4.1) schrieb:
/* Read formatted input from stdin.
This function is a possible cancellation point and therefore not
marked with __THROW. */
extern int scanf (__const char *__restrict __format, ...);hier ist es auch in stdio zu finden.
edit: juhu, 2^9 postings!!1!!11!