Suchmengenkonvertierung

sirhC6

Grünschnabel
Hi, ich hätte mal eine kleine Frage...

ich möchte einen String anlegen und über scanf die Zeichen einlesen. Nun soll der String nur solange mit Zeichen gefüllt werden bis eines eingegeben wird welches ich nicht "erlaubt" habe. Also Zahlen von 0-9 sind erlaubt sobald man aber einen Buchstaben eingibt wird ab da nichts mehr in den string aufgenommen.
Ich habe da ein kleines Programm geschrieben, welches aber nicht so funktioniert wie ich mir das vorgestellt habe.

C:
/* suchmenge1.c */
#include <stdio.h>
int main(void)
{
   char str[20];
   printf("Bitte geben Sie nur Zahlen ein: ");
   scanf("%[0–9]", &str);
   printf("%s\n",str);
   return 0;
}

Programmiere mit Virtual Studio Prof. 2005. Kann es denn auch am Kompiler liegen? Oder bin ich einfach zu blöd um den Fehler zu sehen Das bei scanf heisst (0-9), keine Ahnung warum der das so dargestellt hat. Im Programm ist es richtig...

Danke schon mal für die Hilfe
 
Hi.

Du hast anscheinend keinen normalen Bindestrich benutzt, sondern ein Minus oder einen Gedankenstrich - deswegen wird das hier auch so dargestellt. Nimm das Zeichen schräg unterhalb vom ö auf einer deutschen Tastatur.

Außerdem wird bei der Eingabe immer bis zum Zeilenende gewartet. D.h. man kann irgendwas eingeben, aber es werden nur die Ziffern in die Variable eingelesen.

Gruß
 
Zurück