Witam,
Napisałem program zamieniający znaki wczytane z pliku na bity. Ostatni znak, zawsze wypisuje się dwukrotnie
#include
//===================================
void zamiaNanaBity(int x){
int i = 0;
int tab[8];
for (i = 0; i < 8; i++){
tab[7-i]=x%2;
x=x/2;
}
for (i = 0; i < 8; i++){
printf("%d", tab[i]);
}
printf("\n");
}
//===================================
int main(){
char znak;
int zn;
FILE * pFile;
pFile = fopen ("plik.txt","r");
while (!feof(pFile)){
fscanf(pFile,"%c",&znak);
zn = (int)znak;
zamiaNanaBity(zn);
}
return 0;
}
W plik.txt jest wpisane słowo domek. Po wykonaniu programu wynikiem jest:
01100100
01101111
01101101
01100101
01101011
01101011
A więc litera k została przetworzona podwójnie.
Jakoś nie mogę doszukać się przyczyn, może dopatrzy się ktoś z Was.