Прерывание 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 с пустой строкой ``
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д