Прерывание 21h - при чтении из файла выводятся лишние символы - C (СИ)
Формулировка задачи:
Здравствуйте.
По заданию программа должна открывать файл на чтение, считывать информацию и закрывать файл.
Реализовать всё нужно посредством прерываний.
В файле одно слово KATAL. Почему-то при чтении из файла в строке получается не "KATAL", а "KATAL \x2\x1", которые при выводе на экран преображаются в два смайлика.
Я так понимаю, что это какие-то служебные символы. При использовании printf() они не выводятся. Но реализовать надо через прерывание.
Отсюда вопрос(ы):
Я неправильно считываю, и можно как-то считать без этих символов?
Или я неправильно вывожу, и можно как-то вывести без этих смволов?
Или проблема в файле?
Листинг программы
- #include <stdio.h>
- #include <dos.h>
- main()
- {
- unsigned des;
- char file_name[]="fil.f",
- st[]="";
- _DS=FP_SEG(file_name);
- _DX=FP_OFF(file_name);
- _AX=0x3D00;
- geninterrupt(0x21);
- des=_AX;
- _BX=des;
- _CX=5;
- _DS=FP_SEG(st);
- _DX=FP_OFF(st);
- _AX=0x3F00;
- geninterrupt(0x21);
- _DS=FP_SEG(st);
- _DX=FP_OFF(st);
- _AX=0x0900;
- geninterrupt(0x21);
- _BX=des;
- _AX=0x3E00;
- geninterrupt(0x21);
- getch();
- }
Решение задачи: «Прерывание 21h - при чтении из файла выводятся лишние символы»
textual
Листинг программы
- char file_name[]="fil.f",
- st[]="";
Объяснение кода листинга программы
- Объявляется массив file_name типа char с именем
fil.f
- Объявляется массив st типа char с пустой строкой ``
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д