Прерывание 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 с пустой строкой ``