• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Проблема С Кодировкой В С

  • Автор темы Borodo
  • Дата начала
B

Borodo

Мне нужно считать все символы из файла .rar, но считываются только некоторые,
далее программа считает, что файл закончился и прекращает работу.
Мне кажется, что проблема в кодировке этих символов. Каким образом можно это обойти?

Листинг программы:

#include <stdio.h>
#include <conio.h>

void main ()
{
char *a="", *b="";
FILE *in, *out;
in = fopen("input.txt", "r");
out = fopen("output.txt", "w");
while (!feof(in))
{
fscanf(in, "%c%c%c%c", &a[0], &a[1], &b[0], &b[1]);
fprintf(out, "%c%c%c%c", b[0], b[1], a[0], a[1]);
}
fcloseall();
getch();
}

Пример содержимого файла:

Rar! Пђs Ilt ‚q6 К"щ.&мµі”B5#’ЁЇл

Считываемые символы:

Rar!
 
E

EugenOS

а зачем так сложно? можно стримами сделать. ну или в лоб, по старинке:
C++:
#include <sys\stat.h>
#include <fcntl.h>
#include <stdio.h>

int in, out;
in = open( "input.txt", O_RDONLY, D_IREAD);
out=open("output.txt" , O_CREAT|OWROLY, S_IWRITE);
int len = filelength(in);
char buf[4];
for( int i=0; i < len / 4; i++)
{
read( int, buf, 4 );
write(out, buf+2, 2);
write(out, buf, 2);
}
// ну а с хвостиком 0...3 байт сами разберетесь...;)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!