Wątek zablokowany 2014-10-17 08:33 przez dzek69.

Program wypisujący kody ASCII znaków napisany jednym sposobem nie działa poprawnie

0

Mam taki problem mam napisany program który najpierw wyświetla jaki to jest znak, a potem jaka to liczba i podam przykłąd dla którego działa i przykład dla którego nie działa.

#include <stdio.h>

  int main(void) {
   int licznik; 
      for (licznik = 0; licznik <= 255;licznik++) {
    
    printf("znak to %c ,a liczba to %d\n",licznik,licznik);
    
      }
    
    
    return 0;
  }

To jest przykład działającego programu

#include <stdio.h>

  int main(void) {
   char licznik; 
      for (licznik = 0; licznik <= 255;licznik++) {
    
    printf("znak to %c ,a liczba to %d\n",licznik,licznik);
    
      }
    
    
    return 0;
  }

Czemu ten przykład nie działa przecież w char też można przechowywac liczby na 1 bajcie.

0

Po pierwsze, char to są liczby od -128 do 127
Po drugie, nawet jak dasz unsigned char to będzie on zawsze <=255

0
_13th_Dragon napisał(a):

Po pierwsze, char to są liczby od -128 do 127
Po drugie, nawet jak dasz unsigned char to będzie on zawsze <=255

Ten przykład też nie działa.

#include <stdio.h>

  int main(void) {
   char licznik; 
      for (licznik = 0; licznik <= 127;licznik++) {
    
    printf("znak to %c ,a liczba to %d\n",licznik,licznik);
    
      }
    
    
    return 0;
  }
0

tylko że w char liczba zapisana na bajcie wyświetla się normalnie jako obrazek.
Jeżeli chcesz, żeby int wyświetlał się jako znak z alfabetu ASCI musisz int zrzutować na char a robisz to tak:

int liczba;
printf("liczba: %d, znak: %c", liczba, (char)liczba);

Doczytaj o rzutowaniu typów.

0
Saineib napisał(a):

tylko że w char liczba zapisana na bajcie wyświetla się normalnie jako obrazek.
Jeżeli chcesz, żeby int wyświetlał się jako znak z alfabetu ASCI musisz int zrzutować na char a robisz to tak:

int liczba;
printf("liczba: %d, znak: %c", liczba, (char)liczba);

Doczytaj o rzutowaniu typów.

Wiem co to jest rzutowanie tylko chciałem, żeby była większa oszczędność pamięci.

1 użytkowników online, w tym zalogowanych: 0, gości: 1