Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

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.

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?

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.

Ich verwende C und lese mit scanf ein.

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

if isdigit(zahl)

statt:

if (zahl >= 48 && zahl <= 57)

sollte weit mehr ungünstige Konstellationen abdecken...

  • 5 Jahre später...

Wie wäre es mit einem Switch?

Und dann 10 case mit 0 + 1-9,

default:

(Fehlermeldung)

break;

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?

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 ist für weitere Antworten geschlossen.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.