Wczytanie i wyświetlenie pojedynczych znaków

0

Witam, pomijajac to co mam w printf-ie, chcialbym wyswietlic program, ktory w petli pobiera 8 znakow , a potem je wyswietla tak, że w 1 wierszu bedzie po 8 par znak-kod.
Liczbe rzedow/wierszy i kod ASCII sam dam rade stworzyc, chodzi o to ze mam problem z wyswietleniem tych 8 znakow

#include<stdio.h>
#define STOP '#'
#define ZNAKI 8
int main(void)
{
    char ch;
    int i;
    char wynik[10];
    printf("Podaj 8 kolejnych znakow,a program poda jego kod dziesietny ASCII(wcisnij # aby zakonczyc program).\n\n");
    while((ch = getchar()) != STOP)
    {
       for(i=0;i<=ZNAKI;++i)
       {
        scanf("%c", &wynik[i]);
       }
        for(i=0;i<=ZNAKI;++i)
        {
         printf("%c", wynik[i]);
        }
   }    



return 0;
} 
2

Nie potrzebujesz tablicy.

W pętli iterujesz 9 razy, nie 8.

Zapewne chcesz

printf("%c - %d", wynik[i], wynik[i]);
0
#include<stdio.h>
#define STOP '#'
#define ZNAKI 8
int main(void)
{
    char ch;
    int i;
    char wynik[10];
    printf("Podaj jakis znak a ja podam jego dziesietny kod ASCII,\nwcisnij * aby zakonczyc program.\n\n");
    while((ch = getchar()) != STOP)
    {
       for(i=0;i<=ZNAKI;++i)

        scanf("%c", &wynik[i]);

        for(i=0;i<=ZNAKI;++i)

         printf("%c - %d", wynik[i], wynik[i]);

   }



return 0;
}
 

o to chodzilo ? ponawiam pytanie, chcialbym dostac w jednym wierszu 8 par znak-kod ASCII
jak usunalem tablice wyswietla bledy

2

Nie usunąłeś tablicy, wciąż iterujesz 9 razy. A czy o to chodziło to Ty powinieneś wiedzieć.

2

Wypisywanie co jest nie tak w twoim programie zajmie więcej miejsca niż pełny poprawny kod:

#include <stdio.h>
#include <string.h>

int main(void)
  {
   int ch,pch,cnt=0;
   printf("Wcisnij <Ctrl-Z> na poczatku wiersza aby zakonczyc program.\n");
   while((ch=getchar())!=EOF)
     {
      if(ch!='\n')
        {
         pch=strchr(" \r\b\a\t",ch)?'.':ch; /* znaku nie da się wyswietlić to kropka */
         printf(" %c - %3d |",pch,ch);
         if(!(cnt=(cnt+1)&7)) printf("\n");
        }
      else
        {
         printf("\n");
         cnt=0;
        }
     }
   return 0;
  }
0

Z gotowego kodu niestety malo sie naucze, ucze sie z ksiazki i niestety nie znam jeszcze funkcji strchr, rozumiem ze kod powinien byc tak zmieniony ze od 1 pobranego znaku(ch) pobiera 8 znakow, jednak to da sie przeksztalcic.
jezeli wpisze w dalszej czesci, tzn w char wyniki znaki od a - h(przykladowo)

wypisuje niezrozumialy dla mnie poczatek:

  • 10a - 97b-98c-99 i tak dalej
    i o ile sprawdzialem ze wartosci a = 97 , b = 98 sa prawidlowe w kodzie ASCII , to skad sie wziela to poczatkowa wartosc - 10 ???
0

Jeżeli uczysz się z jednego źródła to już postawiłeś na sobie krzyż.
http://bit.ly/1qhXPCN
10 - kod znaku '\r' ASCII - CR

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