WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 19.01.2003, 20:16   #1
zer0
Jr. Member
 
Registriert seit: 01.08.2002
Alter: 40
Beiträge: 26


Standard kleine frage zu getchar unter C

Hallo,

Ich bin leider noch C noob und hab ein kleines problem.
mit getchar.
Sicherheitshalber poste ich den ganzen programmcode.
Das programm funktioniert aber das problem is das nach der auswahl 1 das darauffolgende ENTER schon als das ASCII zeichen genommen wird.
Lässt sich da was machen oder muss ich das ganze programm umschreiben?

Code:
#include <stdio.h>
#include <ctype.h>

main() {
	char letter;
	int wahl;
	int dez;
	printf("\tASCII ZEICHEN UMRECHNER\n\n");
	printf("(1)ACSII in DEZIMAL oder (2)DEZIMAL in ACSII (1/2)? ");
	scanf("%i",&wahl);
	if (wahl == 1) {
		printf("\nBitte ASCII zeichen eingeben: \n");
		letter=getchar();
		printf("ASCII zeichen %c = Dezimal %i \n\n\n",letter,letter);
	}
	else if (wahl == 2) {
		printf("\nBitte DEZIMALZAHL eingeben: ");
		scanf("%i",&dez);
		printf("DEZIMALZAHL %i = ACSII %c \n\n\n",dez,dez);
	}
	else
		printf("Keine Gültige Auswahl (nur 1 oder 2)\n");
}
THX zer0
____________________________________
Besser dumm fragen als dumm sterben
zer0 ist offline   Mit Zitat antworten
Alt 19.01.2003, 21:12   #2
Take_Five
Senior Member
 
Registriert seit: 09.06.2001
Beiträge: 138


Take_Five eine Nachricht über ICQ schicken
Standard

Meinst jetzt, dass nach dem Printf ("Ascii Zeichen eingeben") in dieser wahl==1 Abfragen beim letter=getchar() er dein voriges Enter schon als zeichen nimmt?

Wenn das der Fall is, probier mal vor der Eingabe ein flushall() . Des löscht dir den Buffer. Des Enter steht nämlich im Buffer drin. Und nachdem ein Enter aus zwei Zeichen besteht, kanns sein das er deshalb des Enter gleich als eingabe nimmt (0D0A).

Lg Take_Five
____________________________________
Nur die Übung trennt das Außergewöhnliche vom Gewöhnlichen
Take_Five ist offline   Mit Zitat antworten
Alt 21.01.2003, 21:37   #3
zer0
Jr. Member
 
Registriert seit: 01.08.2002
Alter: 40
Beiträge: 26


Standard

Genau das wars THX ; )

zer0
____________________________________
Besser dumm fragen als dumm sterben
zer0 ist offline   Mit Zitat antworten
Alt 22.01.2003, 10:18   #4
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard

verwende getch() statt getchar()
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten
Alt 24.01.2003, 16:19   #5
zer0
Jr. Member
 
Registriert seit: 01.08.2002
Alter: 40
Beiträge: 26


Standard

thx Flink

nicht schlecht der link von getch(), gute Bibliothek.
Hast du vielleicht noch ein par gute links zum thems C, Tipps und Tricks oder sowas?

zer0
____________________________________
Besser dumm fragen als dumm sterben
zer0 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:10 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag