dziesiętne z ekranu --> binarne w C

0

Cześć, mam nadzieję, że piszę w dobrym dziale jeżeli nie to przepraszam i proszę o przeniesienie.
Problem :
Program ma pobierać z klawiatury znaki (f.getline), następnie przekazywać tablicę ze znakami do f. tobin, gdzie za każdym wywołaniem tobin będzie tworzony jeden bit, reprezentujący znaki z tablicy, każdy bit ma być wyświetlony przez putchar .
Program się wiesza po odpaleniu. Ktoś ma jakieś sugestie?

#include <stdio.h>
#define MAXLINE 100
//######################################GETLINE############################################################
int getline(int s[], int lim)
{   int c, i;
    for(i = 0 ; i < lim - 1 && (c=getchar()) != EOF && c != '\n' && c != '\t' && c != '\0'; ++i)
       s[i] = c;     // zapisz pobrnay znak do tablicy
    s[i]='\0';//    '\0' = 0000 0000
  return i * 8; //ilosc bitow potrzebna do zapisania pobranych znakow binarnie
}
//##########################################TOBIN##########################################################
void tobin(int s[], int begin, int pos)
{   int i;
    int binarr[8] = {0,0,0,0,0,0,0,0};
    for((i = begin + 8) ; i > begin ; --i)
     {
         if((s[pos]%2)==0)
         {
             binarr[i] = 0;
             s[pos] = s[pos]/2;
         }
         if((s[pos]%2)==1)
         {
             binarr[i] = 1;
             s[pos] = s[pos]/2;
         }
     }

    for(i = 0 ; i < 8 ; ++i)
    putchar(binarr[i]);
}
//##########################################MAIN###########################################################
int main(void)
{
int array[MAXLINE];
int result = getline(array, MAXLINE);
int start = 0;
int meter = 0;
while(result >= 0)
{
   tobin(array, start, meter);
   --result;
   start += 8;
   ++meter;
}
  return 0;
}
0

Debugger ukradli?

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