WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   C - Neuling fragt wegen Ascii-Table - Fehler in Programm (http://www.wcm.at/forum/showthread.php?t=175586)

coolbininet 07.10.2005 20:56

C - Neuling fragt wegen Ascii-Table - Fehler in Programm
 
Hallo WCMler! :-)

Warum habe ich in meiner Ascii-Tabelle einen "dummen" Zeilenumbruch, obwohl ich diesen gar nicht will! Bitte helft mir!

Code:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main (void){
int i=1, j, k;
printf ("\n ");
for (j=0; j<=15; j++){
        printf ("%x", j);
                }
for (k=0; k<=255; k++){
        if (k>0 && (k%16==0)) {printf ("\n %x",i); i++;}
        else {if (!iscntrl(k)) {printf ("%c",k);}
        }
}
getchar();
}

Bitte um Hilfe danke!

Grüsse Cooblininet

tuxlux 07.10.2005 22:24

\n wird wohl brechen duerfen

Sesa_Mina 07.10.2005 23:43

Die ersten 32 Zeichen der ascii tabelle sind sogenannte "non printable" Zeichen. Von daher solltest du bei 32 anfangen zu zählen.

Carriage Return bzw. Line feed (13, 10) => eins davon wird in jedem fall nen zeilenumbruch erzeugen.

pong 09.10.2005 18:26

Weiters fehlt dir ein Rückgabewert.. wennst die Funktion schon als solches deklarierst

pong

coolbininet 09.10.2005 20:05

ASCII-Tabelle die zweite
 
Hallo Leute!

Habe fast dass, was ich will aber warum gibt mir das Progi 0,1 ... f das ganze am Rand links zweimal aus?

Code:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main (void){
int i, j=0, k=0, l=0;
printf ("  ");
for (i=0; i<=15; i++){
        printf ("%x ", i);
        }
printf ("\n");
for (j=0; j<=255; j++){
        if (k%17!=0){
                if (!iscntrl(j)){ printf ("%c ", j); }
                else {printf ("? "); }
                        }
        else {        printf ("\n %x ", l);
                }
        k++;
        l++;
}
getchar();
}

Bitte um Hilfe mit Korrektur, kann ja nicht mehr viel sein, hoffe ich, finde aber den Fehler nicht!

Grüsse Coolbininet

Rider99 10.10.2005 18:35

So ists richtig:

Code:

int main (void){
        int i, j=0, k=0, l=0;
        printf ("  ");
        for (i=0; i<=15; i++)
        {
                printf ("%x ", i);
        }
        printf ("\n");
        for (j=0; j<=255; j++)
        {
                if (k%16!=0)
                {
                        if (!iscntrl(j))
                        {
                                printf ("%c ", j);
                        }
                        else
                        {
                                printf ("? ");
                        }
                }
                else
                {       
                        printf ("\n %X ", l);
                        l++;
                }
                k++;
        }
        getchar();
}

2 Fehler:
- im 1. if gehört ein (k%16 != 0)
- das l++ gehört zum printf

have fun!


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:55 Uhr.

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