Seite 1 von 1

eingabe von buchstaben bei c verhindern

Verfasst: Mi Jun 26, 2013 6:46 pm
von student
hey

meien aufgabe ist es ein kleines c programm zu entwerfen.
dabei wird eine rechnung mit der zahl ausgeführt je nachdem ob sie größer oder kleiner als 0 ist gibt es eine entsprechende formel, dies geschieht mit 10 zahlen.

ich möchte nun am anfang eine schelife einbauen die eine fehlermeldung erzeugt bzw einen weitern versuch eine zahl ein zugeben, falls beim ersten mal ein buchstabe oder ein sonderzeichen eingeben wird.

soweit hab ich das auch geschafft leider wirft mir meine schleife auch 0 als sonderzeichen aus wie kann ich das verhindern?
vielen dank im vorraus!

Code: Alles auswählen

int zahl={'1,2,3,4,5,6,7,8,9,0};
int k=0;
	
	
	
	do
	{	
	printf("Bitte geben Sie eine Zahl ein:");
	scanf(" %i",&zahl);
	while(getchar() != '\n');
	
		if(!zahl)
		{
			k++;
		}
		
		else
		{
			k=0;
		} 
		
	/*switch(zahl)
		{
			case '0': k=0;
	     	break;
	     	
			case 1: k=0;
	     	break;
			
			
			case 2: k=0;
			break;
		
			
			case 3: k=0;
			break;
			
			
			case 4: k=0;
			break;
			
			
			case 5: k=0;
			break;
			
			
			case 6: k=0;
			break;
			
			
			case 7: k=0;
			break;
			
			
			case 8: k=0;
			break;
			
			
			case 9: k=0;
			break;	
			default: k=1;
		} */
	}while(k!=0);
das sind meine beiden möglichkeiten die aber bis jetzt nicht klappen

Edit by Xin: Codetags hinzugefügt

Re: eingabe von buchstaben bei c verhindern

Verfasst: Mi Jun 26, 2013 6:57 pm
von Xin
Moin
student hat geschrieben:dabei wird eine rechnung mit der zahl ausgeführt je nachdem ob sie größer oder kleiner als 0 ist gibt es eine entsprechende formel, dies geschieht mit 10 zahlen.
Zahlen oder Ziffern?
student hat geschrieben:ich möchte nun am anfang eine schelife einbauen die eine fehlermeldung erzeugt bzw einen weitern versuch eine zahl ein zugeben, falls beim ersten mal ein buchstabe oder ein sonderzeichen eingeben wird.
Wenn Du scanf nimmst, begibst Du Dich automatisch in Gefahr. Wenn Du scanf mit %i fütterst, wird ein Integer gelesen. Egal, was Du eingibst. Wenn Du Ziffern eingibst, kann man das als Integer lesen. Gibst Du Buchstaben ein... passiert irgendwas.

Ich kann von scanf in dem Sinne nur abraten.
student hat geschrieben:soweit hab ich das auch geschafft leider wirft mir meine schleife auch 0 als sonderzeichen aus wie kann ich das verhindern?
vielen dank im vorraus!
Was heißt, wirft die Schleife 0 als Sonderzeichen raus!?
Welche Schleife, welche Ausgabe?


Schau Dir mal scanf an.
Dann wirst Du vermutlich erstmal einen String einlesen müssen und dann in einer Schleife prüfen müssen, welche Art von Zeichen eingegeben wurden. Dafür gibt es die ctype-Bibliothek.

Damit und den Beispielen in den Funktionen solltest Du erstmal weiterkommen.

Re: eingabe von buchstaben bei c verhindern

Verfasst: Mi Jun 26, 2013 9:37 pm
von student
okay danke !!!

hab zwar etwas gesessen aber endlich klappts so wie erhofft!!

mfg

Re: eingabe von buchstaben bei c verhindern

Verfasst: Mi Jun 26, 2013 9:42 pm
von Xin
student hat geschrieben:hab zwar etwas gesessen aber endlich klappts so wie erhofft!!
Das ist normal, wenn man C lernt.

C ist eine ernstzunehmende Programmiersprache. Damit kannst Du Dich jahrelang beschäftigen, ohne dass es langweilig wird, weil man damit eben wirklich nahezu alles machen kann. Wenn Du sie also richtig kannst, kannst Du Dir auch was drauf einbilden.
Lohnt sich also.