C++, ASII Zeichen anzeigen lassen

Also mit folgenden Code lass ich mir alle anzeigbaren ascii zeichen Anzeigen:
Code:
#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main()
{
  for(int i=33;i<=126;i++)
  {
     char* test;	
     sprintf(test,"%c",i);
     printf(test);
     printf("\n");
  }
  return(0);
}

Das geht ganz gut nur am Ende wird das noch ausgegebn und ich habe keinen schimmer warum:

6696:
6696: calling fini: /usr/lib/libstdc++.so.6 [0]
6696:
6696: symbol=__cxa_finalize; lookup in file=/home/ash/a.out
6696: symbol=__cxa_finalize; lookup in file=/usr/lib/libstdc++.so.6
6696: symbol=__cxa_finalize; lookup in file=/lib/tls/libm.so.6
6696: symbol=__cxa_finalize; lookup in file=/lib/libgcc_s.so.1
6696: symbol=__cxa_finalize; lookup in file=/lib/tls/libc.so.6
6696: binding file /usr/lib/libstdc++.so.6 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
6696:
6696: calling fini: /lib/tls/libm.so.6 [0]
6696:
6696: symbol=__cxa_finalize; lookup in file=/home/ash/a.out
6696: symbol=__cxa_finalize; lookup in file=/usr/lib/libstdc++.so.6
6696: symbol=__cxa_finalize; lookup in file=/lib/tls/libm.so.6
6696: symbol=__cxa_finalize; lookup in file=/lib/libgcc_s.so.1
6696: symbol=__cxa_finalize; lookup in file=/lib/tls/libc.so.6
6696: binding file /lib/tls/libm.so.6 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
6696:
6696: calling fini: /lib/libgcc_s.so.1 [0]
6696:
6696: symbol=__cxa_finalize; lookup in file=/home/ash/a.out
6696: symbol=__cxa_finalize; lookup in file=/usr/lib/libstdc++.so.6
6696: symbol=__cxa_finalize; lookup in file=/lib/tls/libm.so.6
6696: symbol=__cxa_finalize; lookup in file=/lib/libgcc_s.so.1
6696: symbol=__cxa_finalize; lookup in file=/lib/tls/libc.so.6
6696: binding file /lib/libgcc_s.so.1 to /lib/tls/libc.so.6: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
6696:
6696: calling fini: /lib/tls/libc.so.6 [0]
6696:

dies wird auch angezeigt wenn ich nur 100-126 oder so einstelle mit kleinen abwandlungen.
 
Ein Wunder das es bei dir überhaupt funktioniert

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

int main()
{
  for(int i=33;i<=126;i++)
  {
     char test[2];	
     sprintf(test,"%c",i);
     printf(test);
     printf("\n");
  }
  getchar();
}

Du kannst nich einfach in einen unitalisierten Zeiger "char *test" nen Wert speichern.
 
oh ähm ja sehr interessant...
muss ich gleich mal ausprobieren
würd mich aber trotzdem interessieren warum da so ein Zeug ausgegeben wird.

jetzt geht es :]
 
würd mich aber trotzdem interessieren warum da so ein Zeug ausgegeben wird.

Weil char *test ja auf irgendeine Adresse im Arbeitsspeicher zeigt.

Wenn du dann test ausgibst, wird jedes Zeichen ab der Adresse von &test[0] einzeln angezeigt, bis test[x] auf das Nullterminierungszeichen '\0' stößt.
 
Code:
#include <stdio.h>

int main()
{
  for(int i=33;i<=126;i++)
  {
     printf("%c\n",(char)i);
  }
  return(0);
}

Das kommt wohl eher hin?
 
Zurück
Oben