Ausgeben des ASCII-Codes



  • Hallo Leute

    bin lange nicht mehr hier gewesen und lange raus. Trotzdem noch Angänger. Meine Frage:

    Wie kann ich unten stehendes Programm dazu bringen, dass es mir die Ausgabe auf zwei mal teilt. ASCII-Nr. 32 bis 127 und 128 bis 255. dazwischen soll es anhalten und eventuell mit RETURN weiter laufen. Beginn der Ausgabe bis 127 dann STOP und mit RETURN den Rest ausgeben also 128 bis 255. Hab da im Moment keinen Plan. break und continue bringen nicht den gewünschten Effekt.

    #include <stdio.h>
    #include <conio.h>

    void main(void)
    {
    int zeilenzahl, ordnungszahl = 16;

    do
    {
    for(zeilenzahl = ordnungszahl; zeilenzahl < ordnungszahl + 16&&zeilenzahl
    <= 255;zeilenzahl++)
    {
    printf(" %3d",zeilenzahl);
    }
    printf("\n");

    for(zeilenzahl = ordnungszahl;zeilenzahl < ordnungszahl + 16&& zeilenzahl
    <= 255;zeilenzahl++)
    {
    printf(" %3c",zeilenzahl);
    }
    ordnungszahl = zeilenzahl;
    printf("\n\n");
    }while(ordnungszahl <= 255);

    getch();
    }

    /******************************************************************************/

    Lieben Dank für Eure Hilfe

    champman



  • 1. Bitte in Zukunft cpp-Tags benutzen!

    2. Die Funktion heißt "int main()", es gibt eigentlich keine Variante "void main()". Auch, wenn dein Compiler das akzeptiert, falsch ist es trotzdem. Und der Rückgabewert von main hat ja auch einen Sinn...

    3. Du führst einfach ein break aus, wenn ordnungszahl==128 und die Eingabe )die da noch rein muss) die Return-Taste ist. Zum Beispiel so:

    int main(void) 
    { 
    	int zeilenzahl, ordnungszahl = 16; 
    
    	do 
    	{ 
    		for(zeilenzahl = ordnungszahl; zeilenzahl < ordnungszahl + 16&&zeilenzahl 
    			<= 255;zeilenzahl++) 
    		{ 
    			printf(" %3d",zeilenzahl); 
    		} 
    		printf("\n"); 
    
    		for(zeilenzahl = ordnungszahl;zeilenzahl < ordnungszahl + 16&& zeilenzahl 
    			<= 255;zeilenzahl++) 
    		{ 
    			printf(" %3c",zeilenzahl); 
    		} 
    		ordnungszahl = zeilenzahl; 
    		printf("\n\n");
    		if(ordnungszahl==128) {
    			while(!kbhit());
    			char c=getch();
    			if(c!=13 && c!=10) {
    				printf("Abbruch!\n");
    				break;
    			}
    		}
    	}while(ordnungszahl <= 255); 
    
    	getch(); 
    }
    

    Ist jetzt aber nur schnell dahingeschludert, über die Eleganz des ganzen Codes lässt sich streiten...



  • Hy

    lieben Dank. Auf dieser Idee kann man wenigstens Aufbauen und sie gibt neue Inspirationen. Falls es trotz allem nicht klappen sollte und ich wieder einen Denkanstoss benötige, werde ich mich wieder melden.

    Danke

    champman



  • Hallo

    Hat super geklappt. Habe break rausgenommen, bei printf(Abbrruch) ein paar mehr Leerzeilen eingegeben und den ganzen rest, der von mir stammt noch mal unter Deinen Teil kopiert.

    Läuft ganau so wie ich es mir gedacht hatte

    Danke 🙂


Log in to reply