//先序建立并且遍历二叉数。
program Project1;{$APPTYPE CONSOLE}uses
  SysUtils;type
    BiTree=^BitNode;
    BitNode=record
    Data:Char;
    LChild:BiTree;
    RChild:BiTree;
end;procedure CreateBiTree(var T:BiTree);
var ch:Char;
var FileName:TextFile;
begin
    AssignFile(FileName,'Data.txt');
    Reset(FileName);
    While not Eof(FileName) do
    begin
    ReadLn(FileName,ch);
    Write(ch);
    if (ch='#') then
    T:=nil
    else
    begin
        T^.Data :=ch;
        CreateBiTree(T^.Lchild);
        CreateBiTree(T^.RChild);
    end;
    CloseFile(FileName);
    end;end;procedure PreOrderTraverse(var T:BiTree);
begin
     if (T<>nil) then
     begin
     Write(T^.Data);//输出结点信息
     PreOrderTraverse(T^.LChild);
     PreOrderTraverse(T^.RChild);
     end;
end;
var
T:BiTree;
begin
     New(T);
     CreateBiTree(T);
     PreOrderTraverse(T);
  { TODO -oUser -cConsole Main : Insert code here }
end.
把以下这句话:
AssignFile(FileName,'Data.txt');
    Reset(FileName);
    While not Eof(FileName) do
    begin
    ReadLn(FileName,ch);
    Write(ch);
改为:
Read(ch)
则不会出现问题
为什么?