Autor | Nachricht |
---|---|
Beobachter Anmeldedatum: 06.06.2020 Beiträge: 2 | zitieren Liebes Forum, für ein Uniprojekt muss ich das Spiel "Vier Gewinnt" als Programm in C umsetzen. Es ist das erste Mal, dass ich überhaupt programmiere, seit bitte etwas nachsichtig mit mir ![]() Folgendes Problem habe ich: Ich möchte mithilfe von "scanf" eine Tastatureingabe einlesen. Erlaubte Eingaben sind nur die Zahlen von 1-7. Bei allen anderen Eingaben soll eine Fehlermeldung kommen. So habe ich es bisher geschrieben:
Das Problem ist: Solange man eine Zahl außerhalb des Intervalls eingibt, kommt die richtige Fehlermeldung. Wenn man aber einen Buchstaben eingibt, wird die Fehlermeldung mit unendlich vielen Wiederholungen ausgegeben. Meine Vermutung ist, dass es mit dem Einlesen zu tun hat, da ich dort nur "%d" eingegeben habe. Leider habe ich keine Alternative dazu gefunden, vielleicht kann mir ja hier jemand helfen... Vielen Dank im Voraus! |
▲ | pn |
Trainee ![]() Name: Mirko Geschlecht: ![]() Anmeldedatum: 06.12.2019 Beiträge: 46 Wohnort: Weingarten | zitieren Hallo cmdStock11, in C ist das leider nicht ganz ohne, dieses Thema. Denn C nimmt dir die Arbeit diesbezüglich nicht ab. Du musst dich um noch so jede Kleinigkeit selber kümmern. Außerdem halte ich persönlich die Funktion scanf für eine liederliche Funktion. Ich verwende sie eigentlich niemals. Wenn ich in eine Situation komme, in der ich die Eingabe pingelig auswerten muss, dann speichere ich die Eingabe grundsätzlich als Zeichenkette ab. Da kann der Nutzer eingeben was er will und Fehlermeldungen werden vermieden. Dann liegt es allerdings an mir die Zeichenkette so zu behandeln, wie es das Programm benötigt. Schau dir bitte mal die Funktion fgets an und mach dich etwas mit der ASCII-Tabelle vertraut. Du wirst sehen, da kann scanf nicht mithalten. Zumindest nicht in diesem Fall. Weiterhin poste ich dir einen Beispielcode, mit jede Menge Kommentaren, den Du nahezu eins zu eins in deinem Code verwenden kannst.
Ich hoffe das hilft dir weiter und ich wünsche dir noch ein schönes Wochenende. |
▲ | pn |
Beobachter Anmeldedatum: 06.06.2020 Beiträge: 2 | zitieren Danke dir! Hat mir sehr geholfen ![]() |
▲ | pn |
Junior Name: Voller Name als Anagramm: Fitje Weshoms Geschlecht: ![]() Fahrzeug: Yamaha YZF R6 Thundercat Anmeldedatum: 15.07.2012 Beiträge: 92 Wohnort: Amberg, Oberpfalz | zitieren Hallo Leute! Es geht etwas einfacher:
Zur Beschreibung: Die Funktion clpuf() löscht den Inhalt des Tastaturpuffers. Bei i = scanf("%15[0123456789+-*/=]", c_posi); werden nur Zeichen angenommen, welche innerhalb der rechteckigen Klammern stehen. Die Zahl 15 vor der ersten rechteckigen Klammer beschränkt die Eingabe auf maximal 15 Zeichen. So kann man einen Pufferüberlauf vorbeugen. Bei der ersten Eingabe eines Zeichens, welches nicht in der Liste steht, wird die Eingabe abgebrochen. i = scanf("%[^1234567890]", c_nega); Dagegen ist eine sogenannte Negativ-Liste. scanf("%[^\n]", c_nega); liest alle Zeichen außer den Newline-Zeichen(Enter-Taste) ein, auch Leerzeichen. So kann man auf einfache Weise einen Satz einlesen. |
▲ | pn |
Trainee ![]() Name: Mirko Geschlecht: ![]() Anmeldedatum: 06.12.2019 Beiträge: 46 Wohnort: Weingarten | zitieren Hallo Guiseppe, cooles Beispiel. Aber ob das ein Programmieranfänger wirklich als leichter empfindet, bezweifle ich jetzt mal ganz provokativ. ![]() Zumal sich vielleicht cmdStock11 noch gar nicht im Klaren darüber ist, warum er den Puffer überhaupt leeren sollte. Aber cooles Beispiel... ![]() |
▲ | pn |
Gast | zitieren Mach mit!Wenn Dir die Beiträge zum Thread "Tastatureingabe mit "Scanf"" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:Registrierte Mitglieder genießen die folgenden Vorteile: ✔ kostenlose Mitgliedschaft ✔ keine Werbung ✔ direkter Austausch mit Gleichgesinnten ✔ neue Fragen stellen oder Diskussionen starten ✔ schnelle Hilfe bei Problemen ✔ Bilder und Videos hochladen ✔ und vieles mehr... |
▲ | |
Ähnliche Beiträge | Re: √ | Letzter Beitrag | |
---|---|---|---|
V-one "s Honda Civic Eg4 ("S.78Civic später Start in die "noch gerade so" Saison,Bilder ") (Nachtrag 24.02.2011,Die Bilder neu reingestellt damit die Historie Nachvollziehbar,sowie anschaulich bleibt)
Hier wollte ich mal mein Honda Civic vorstellen :)
So sah er aus als ich in bekommen habe:
Sieht mal zunächst als Basis nicht sonderlich übel... von V-one | 779 48.334 | 28.09.2017, 06:17 SandydelSol | |
mysql_query(......) "Spalte"/"Variable" lässt sich nicht mit einer Eingabe vergleichen Hey,
ich will eine ganz normale Abfrage machen, ob der vom Nutzer eingegebene Name/Wert bereits irgendwo in der Datenbank vorhanden ist. So sieht das bei mir aus:
$nogroups = mysql_query( "SELECT * FROM memberinformation WHERE nickname... [PHP]von Section | 4 1.213 | 23.07.2012, 13:09 ![]() Section | |
"Unfall" brauche Hondateile raum Bodensee, Allgäu. "HILFE" Olla Leuz
Hatte heut nen unfall mit meinem eg5 :cry: :wall:
Jetzt is meine Komplett front im eimer......und brauche jetzt Motorhaube, beide Scheinwerfer ,Frontstoßstange , Kühler mit Lüfter , und das Komplette Frontgerüst :(
Kennt von euch... von civic4live | 10 2.806 | 14.07.2006, 16:32 civic4live | |
ein "nicht honda fahrer" mit "hondapower" braucht eure hilfe hallo forum,
ich habe hier ein wenig rumgestöbert und brauch enun mal dringend eure hilfe.
ich fahre einen alten klassischen mini (cooper), den ich die letzten 1,5 jahre auf honda ed9 d16z5 umgebaut habe.
das ganze ist in einem eigenbaurahmen und... von kelmiinthafirma | 4 3.275 | 16.07.2009, 09:04 kelmiinthafirma | |
Frechen 02.07.2010 "Japan wird Weltmeister" - "doch nich =(" so wer kommt diesen freitag... von Toby1991 | 39 11.829 | 05.07.2010, 20:40 stoffi88 | |
Project "road trip nach Polen" "IST-Bilder jetzt" So morgen junx,
da mein Honda, ein sehr schweren Hagelschaden erleiden musste, bin ich jetzt dabei einen Trip nach Polen zu planen, um meinen Honda Komplett neu zu lackieren.
Was ich vorab noch unbedingt brauche, ist eine neue Motorhaube für denn... von tr0Un-1337 | 9 1.817 | 06.07.2008, 20:25 tr0Un-1337 | |
Civic MB2 2131/313 "1999" Scheibenbremse/Beläge hinten "Größe"??? Hallo Leutz,
ich habe da mal ein Problem.
Ich wollte bei einem Bekannten an seinem Honda Civic HSN:2131 / TSN:313; Baujahr 09.1999; 66KW 5-Türer (Fastback) die hintere Bremse Wechseln (beide Scheiben und Beläge)
Nun habe ich im Internet (ebay u.s.w.)... von Sisko865 | 6 489 | 17.08.2014, 18:27 Blues | |
Android Chrome: "Artikel für Sie" bzw "Suggested Articles" anpassen? Gibt es irgendwo die Möglichkeit die Domains / Newsseiten, die auf der Startseite angezeigt werden, einzustellen? Ich bekomme z.b. News von Bild.de (Clickbaiting), Chip.de (Clickbaiting) und Focus.de (Kommentare Pegida verseucht) und da das der letzte... von mgutt | 3 633 | 11.03.2020, 20:04 mgutt | |
Suche gutachten für Fujitsubo duplex "FGK0S2E" "e4-81/334- 93001" für ed9 ! hi,
bin auf der Suche nach einem Gutachten/ ABE für einen Fujitsubo Duplexschalldämpfer. Und zwar hat dieser die Kennung "FGK0S2E"
"e4-81/334- 93001"
Sollte an CRX ED9 passen...
Bin für jede Hilfe dankbar und hoffe, das hier jemand... von Crazycasanova | 3 368 | 29.07.2014, 11:05 Crazycasanova | |
"Japanischer Käse" goes to "Polen", Sitze sind bei Näherei, Hey Hey,
habe heute mal angefangen meinen ED9 weiter zu zerlegen und dachte mir ich zeige euch mal was ich für lustige Sachen entdeckt habe.
Wenn ihr auch sowas hatte dann schreibt mir mal bitte ob ihr RepBleche genommen habt und zum K-bauer... von -eisbaer- | 100 6.603 | 07.09.2012, 16:26 NipponVtec |