Перевод Ansi в Hex - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Мне нужно считать содержимое .com файла и перевести его в Hex(Причем желательно чтобы он был записан в строку, т.е. FF это не какое-либо число, а char a[2]) Я написал кусок, считывающий информацию из файла и получил массив, состоящий из ANSI символов( ♂▬ō♥☻♣♠ȫ♦ и т.п.). Как мне теперь перевести это в HEX? Вот что пока есть:
#include <stdlib.h>
#include<stdio.h>
#include<conio.h>
#define BSIZE 500
int main(){
char buf[BSIZE];
int a;
char i;
FILE *in;
a=0;
in=fopen("i.com","r");
while((i=getc(in))!=EOF){buf[a]=i; a+=1;}
fclose(in);
 return (0);}
Спасибо.
Так, дополнив код функцией sprintf(buf1,"%X",buf[n]); получил то, что нужно, но теперь в буфер записывается код в неудобном формате, мне нужно, чтобы выводило в формате 1 байта(например 03 21 CA) а он выводит в странном формате ( соответственно 3 21 FFFFFFCA) кто что посоветует?

Решение задачи: «Перевод Ansi в Hex»

textual
Листинг программы
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    FILE *ifp;
    int c;
    
    if (argc != 2) {
        fprintf(stderr, "usage: %s file\n", argv[0]);
        return 1;
    }
    if ((ifp = fopen(argv[1], "rb")) == NULL) {
        fprintf(stderr, "%s: error: can't open file\n", argv[0]);
        return 2;
    }
    while ((c = getc(ifp)) != EOF)
        printf(" %.2X", c);
    putchar('\n');
    if (ferror(ifp)) {
        fprintf(stderr, "%s: error: input file is corrupted\n", argv[0]);
        return 2;
    }
    fclose(ifp);
    return 0;
}

Объяснение кода листинга программы

В этом коде представлена программа, которая считывает файл Ansi и выводит его содержимое в шестнадцатеричной системе счисления. Вот список действий, выполняемых в коде:

  1. Включаются стандартные заголовочные файлы, необходимые для работы с файлами и вывода сообщений об ошибках.
  2. Создается функция main(), которая является точкой входа в программу.
  3. Проверяется корректность аргументов командной строки. Если введенных аргументов менее двух, выводится сообщение об ошибке.
  4. Открывается файл для чтения в бинарном режиме. Если файл не может быть открыт, выводится сообщение об ошибке и программа завершается.
  5. В цикле считывается каждый символ из файла, и его значение выводится в шестнадцатеричной системе счисления.
  6. Проверяется наличие ошибок при чтении файла. Если обнаружена ошибка, выводится сообщение об ошибке и программа завершается.
  7. Файл закрывается.
  8. Возвращается 0, указывающий на успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5