Zum Inhalt springen

Programm soll nur Zahleneingaben akzeptieren


Empfohlene Beiträge

Geschrieben

Ich habe ein Programm geschrieben, wo man mehrere Zahlen eingeben soll. Wenn ich dort Buchstaben oder Zeichen eingebe, soll eine Fehlermeldung angezeigt werden. Es sollen also alle Zahlen, egal wie Große, außer Buchstaben und Zeichen akzeptiert werden.

Kann mir da jemand helfen?

Geschrieben

Hallo,

ich nehme jetzt mal an, Du hast die Eingabe in einem char drin. Dann wanderst Du Zeichen für Zeichen durch den char und wandelst den char[position x] in einen int-Wert um. Wenn der int-Wert zwischen 48 und 57 liegt, dann ist es eine Zahl zwischen 0 und 9.

Frank

Geschrieben

Es ist ein Programm, wo man eine Zahl erraten soll, die vorher durch den Zufallsgenerator ausgesucht wurde. Die Variable hat bei mir den Datentyp integer und nicht char. Es soll ja eine Fehlermeldung ausgeben werden, wenn man einen Buchstaben eingibt.

Geschrieben

Da ich mich noch nicht ganz so gut mit Programmieren auskenne, weiß ich jetzt nicht ganz so genau, wie du das meinst. Wenn ich es als char einlese, dann erkennt er doch erst recht Buchstaben, aber dann keine Zahlen mehr.

Könntest du mir das Ganze nochmal etwas genauer erklären?

Geschrieben

Wenn du die Eingabe gleich als Zahl einlesen lässt, ist es schwieriger, eine Fehleingabe überhaupt zu erkennen. Wenn du die Eingabe als Zeichenkette behandelst, kannst du jedes Zeichen darauf prüfen, ob es eine Ziffer ist, und entsprechend reagieren.

Geschrieben

Ich habe der Variablen, die für die Zahleneingabe zuständig ist, den Datentyp char zugeordnet und string statt integer genommen. Das Programm erkennt jetzt aber keine Zahlen mehr. Bei deinem Vorschlag stand noch etwas mit prüfen, ich denke mal das habe ich damit jetzt noch nicht erreicht. Kann mir aber auch nichts unter Prüfen vorstellen. Das habe ich noch nie gemacht.

Geschrieben

Um die Sache mal abzukürzen, hier ist ein Beispiel.


#include <stdio.h>
#include <conio.h>
#include <string.h>

char eingabe[80];
int zahl = 0, i = 0, laenge = 0;

int main(int argc, char* argv[])
{
printf("Bitte geben Sie Zahlen ein: ");
scanf("%s", &eingabe);

laenge = strlen(eingabe);
for (i=0; i<laenge; i++)
{
zahl = eingabe[i];
printf("Zahl %i: %i\n", i, zahl);
if (zahl >= 48 && zahl <= 57)
printf("Das war eine Zahl.\n");
else
printf("Sie haben einen Buchstaben eingegeben.\n");

}
getch();
return 0;
}[/code]

Frank

  • 5 Jahre später...
Geschrieben
Du hast es vermutlich nicht bemerkt, aber du hast da einen fast fünfeinhalb Jahre alten Thread ausgegraben.

:old

fünfeinhalb Jahre? verdammt das hat sammlerwert, warum löscht ihr nich all jahrhundert mal das alte zeug?

Geschrieben
fünfeinhalb Jahre? verdammt das hat sammlerwert, warum löscht ihr nich all jahrhundert mal das alte zeug?

Wenn ich bei google was such, was andere vielleicht vor 5 Jahren mal gelößt haben, dann find ichs nicht, weils gelöscht ist.

Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...