title image


Smiley Unklarheit bzgl. getchar()
Hallo, hab folgendes Programm schreiben müssen:

Der Inhalt tut eigentlich nicht zur Sache, habe es nur komplett abgebildet, da vielleicht der Fehler an ner Stelle liegt die ich net Sehe!





Es geht um die dick geschriebene Zeile cEnde= getchar(); und die while - Schleife, wenn ich das prog ausführe ist es wie ne Endlosschleife, er ignoriert die Zeile einfach, kann mir einer sagen wo der Fehler liegt?













// Hexadezimal zu Dezimal umwandeln





#include

#include



char cTxt[255];

int i, j, k, l; //Laufindexe

int iKontrollzahl=0;

double iDezimalzahl=0;

char cFalscheWerte[255];

char cEnde;









int main(void)

{

printf("Dieses Programm rechnet eingegebene Hex-Zahlen in Dezimalzahlen um!\n\n\n");



while (cEnde!='q')

// Schleife für die Abbruchbedingung Quit

{

printf("\nGebe Sie eine beliebig lange Hex.-Zahl in Form 0x... ein: ");

scanf("%s",&cTxt);

if(cTxt[0]=='0' && cTxt[1]=='x') // Ermittlung der richtigen Eingabe mit 0x

{

for (i=2; cTxt[i]!=0 ;i++); // Ermittlung der Größe der Zeichenkette

k=i;

for (j=2; j
{

if (cTxt[j]>=49 && cTxt[j]<=57)

cTxt[j]=cTxt[j]-48;

else if (cTxt[j]>=97 && cTxt[j]<=102)

cTxt[j]=cTxt[j]-87;

else if (cTxt[j]>=65 && cTxt[j]<=70)

cTxt[j]=cTxt[j]-55;

else

{

iKontrollzahl=1;

cFalscheWerte[l]=cTxt[j];

l++;



}



}

for (l=0; cFalscheWerte[l]!=0 ;l++); //Schleife zur Ausgabe der falsch eingegebenen Zeichen wenn nötig



if (l==1)

printf("Das Zeichen %c ist keine gueltige Hex-Schreibweise!",cFalscheWerte[0]);

else if (cFalscheWerte[0]!=0)

{

printf("Die Zeichen ");

for (j=0; j
printf ("%c ", cFalscheWerte[j]);



printf(" sind keine gueltigen Hex-Schreibweisen!");

}



for (j=2, i-=3; j
{

iDezimalzahl =iDezimalzahl + cTxt[j] * pow( 16, i );

i--;



}

if (iKontrollzahl==0) // Bedingung, wenn Eingabe korrekt, dann Ausgabe der Dezimalzahl

printf("%lf",iDezimalzahl);







}

else

printf("falsche eingabe");



printf("\n\nWenn Sie eine weitere Zahl umwandeln wollen,\n beliebe Taste druecken, zum Beenden q\n\n\n");

cEnde= getchar();

}





return 0;

}

















geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: