Я должен распечатать двоичные значения файла вместе со смещением и символами в столбцах друг с другом. Однако для персонажей у меня возникают проблемы с распечаткой всех значений. Я полагаю, что проблема заключается в том, как программа проверяет, является ли счетчик i кратным 10, и печатает символы только тогда, когда это происходит, поэтому, когда значение i меньше десяти и меньше десяти символов, оно не печатает их. Я не уверен, хотя. Я хотел бы получить помощь в устранении этой проблемы. Мне нужна новая строка, напечатанная в символьной части каждые десять символов, и она не должна мешать остальной информации, которая выводится на печать.
Токовый выход
int main()
{
char file_info[250]="I like pineapples!";
FILE *fptr;
if ((fptr = fopen("try.bin","wb")) == NULL){
printf("Error! opening file");
exit(1);
}
fwrite(&file_info, sizeof(char), 250, fptr);
fclose(fptr);
fptr=fopen("try.bin","rb");
char file_array[250];
fread(file_array,sizeof(char),250,fptr); // read one character
int i=0,num=0,j=0,count=0;
printf("Offset Bytes Characters\n");
printf("------ ----------------------------- ----------");
for(i=0;i<strlen(file_array);i++){
if(i%10==0)
{
if(i>=9){
count=j;
printf(" ");
for(;j<count+10;j++)
{
printf("%c",file_info[j]);
}
}
printf("\n %5d ",num*10);
num++;
}
printf(" %x",file_array[i]);
}
fclose(fptr);
return 0;
}
Я ожидаю, что вывод для столбца символов покажет все предложение "Я люблю ананасы!" но фактическим выводом является «Я люблю пин», которые являются первыми 10 символами, а остальные символы, которые не составляют до 10, не учитываются.