Заменить определённые строки из одного файла определёнными числами, и вывести их (коды) в другой файл - C (СИ)

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

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

Привет всем! Недавно нашёл такую проблему. Нам задали сделать "ассемблер", который просмотрит "код" из текстового файла, написанный на псевдоассемблере, и заменит все команды их кодами. Проще говоря, заменить определённые строки из оного файла определёнными числами, и вывести их (коды) в другой файл. И всё это хорошо работало, пока не понадобилось расширить число команд для ассемблера. Теперь вывод в файл не работает. Для теста разбавил код вот так:
Листинг программы
  1. int main() {
  2. FILE *code, *recode;
  3. code = fopen("Prog.txt", "r"); assert(code);
  4. recode = fopen("Prog.ap", "w"); assert(recode);
  5. /* немного вычислений */
  6. do {
  7. /* ещё немного */
  8. fprintf(recode, "%d", cmd_code);
  9. fprintf(stdout, "%d", cmd_code); //DBG
  10. if (isarg) {
  11. fprintf(recode, " %d", arg);
  12. fprintf(stdout, " %d", arg); //DBG
  13. }
  14. fprintf(recode, "\n");
  15. fprintf(stdout, "\n"); //DBG
  16. } while (fgetc(code) != EOF && cmd_code != F_END_);
  17. fclose(code);
  18. fclose(recode);
  19. }
В примере recode выходной файл. Далее я запускаю эту прогу через командную строку примерно так:
Листинг программы
  1. asm-part.exe > prog2.ap
Так воот, Prog.ap остаётся девственно чистым, а Prog2.ap содержит ровно то самое, что ожидалось от Prog.ap. Вся эта каша сейчас лежит на гите вот тут. И у меня даже идей нет, где здесь утка...

Решение задачи: «Заменить определённые строки из одного файла определёнными числами, и вывести их (коды) в другой файл»

textual
Листинг программы
  1. char cmd_txt[5] = {'\0'};

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

  1. Создаётся массив cmd_txt типа char с размером 5 символов.
  2. Все символы в массиве cmd_txt устанавливаются в символ '\0' (ноль).

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


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

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

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы