Помощь - Поиск - Пользователи - Календарь
Полная версия: File Of Integer
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
suriv
Код
uses crt;
var
f:file of integer;
i:integer;
begin
clrscr;
assign(f,'c:\fp\bin\win32\a.txt');
{$I-}
reset(f);
{$I+}
if ioresult <>0then halt;
while not eof(f) do
begin
read(f,i);
write(i,' ');
end;
readln;
end.

В файле а.тхт число 88
Так почему же пишется число 14392 кокда я запускаю прогу???
volvo
suriv
Цитата
В файле а.тхт число 88

Но ты же не открываешь файл, как текстовый, а открываешь его как файл, компонентами которого являются целые числа. Теперь смотри, что делает компилятор: размер типа Integer - 2 байта, программа читает 2 байта из файла. Но ты сказал программе, что эти 2 байта - есть Integer, программа принимает строку "88" (ведь в текстовом файле информация хранится в строках) за машинное представление какого-то числа. Давай разберемся, какого...

символ "8" имеет код = 56. Значит, число, которое, по мнению компилятора хранится в этих 2-х символах: 256*56+56 = 14392... То есть, программа не ошиблась.

P.S. Чтобы корректно читать данные из текстового файла - определяй его так:
Код
Var f: Text;
suriv
Всё понятно :low:
Спасибо ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.