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;
}