R
Rydj
Доброго времени суток. Можете помочь немного с программой, сам код уже написан но нужно при выводе на экран поменять порядок вывода битов.
C++:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
FILE *f;
unsigned char c;
int pos;
char md;
} BSTREAM;
int getbit(BSTREAM*s)
{
if(s->pos>7)
{
int ch;
ch=getc(s->f);
if(ch==-1)
return -1;
s->c=ch;
s->pos=0;
}
int r;
r=(s->c>>s->pos)&1;
s->pos++;
return r;
}
BSTREAM * bopen(FILE *f,const char*mode)
{
BSTREAM*s;
if ((s=malloc(sizeof(BSTREAM)))==NULL)
return 0;
s->pos=0;
s->md=mode[0];
s->c=0;
s->f=f;
return s;
}
int main()
{
int b=0;
BSTREAM *s = bopen(stdin,"r");
while(1)
{
b=getbit(s);
printf("%d\n",b);
if(b==-1)
break;
}
printf("%d",b);
}