このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1284632294/324
#  [1] 授業単元:C++演習2 
#  [2] 問題文(含コード&リンク): 
#  下記の文字列が書かれているinput.datからこれらの文字列を1文字ずつ読み込んで、文字数を表示した上で、output.datというファイルに一文字ずつ書き込むプログラムを作成し、 
#  実際に実行し、output.datにOJIRETSU=  input.datファイル内の文字列が書き込まれていること確認しなさい。 
#  

'下記の文字列が書かれているinput.datからこれらの文字列を1文字ずつ読み込んで、文字数を表示した上で、output.datというファイルに一文字ずつ書き込むプログラムを作成し、実際に実行し、output.datにOJIRETSU= input.datファイル内の文字列が書き込まれていること確認しなさい。' :-
        open('input.dat',read,Input),
        open('output.dat',write,Output),
        '1文字ずつ読み込んで、文字数を表示した上で、output.datというファイルに一文字ずつ書き込む'(0,Input,Output),
        close(Output),
        close(Input),!.

'1文字ずつ読み込んで、文字数を表示した上で、output.datというファイルに一文字ずつ書き込む'(M1,Input,Output) :-
        at_end_of_stream(Input),!.
'1文字ずつ読み込んで、文字数を表示した上で、output.datというファイルに一文字ずつ書き込む'(M1,Input,Output) :-
        \+(at_end_of_stream(Input)),
        get_char(Input,Char),
        M2 is M1 + 1,
        整数から文字列(6,M2,S2),
        カーソルをPc桁左へ移動(6),
        カーソルから行の終わりまでを消去,
        write_formatted('%t',[S2]),
        put_char(Output,Char),
        '1文字ずつ読み込んで、文字数を表示した上で、output.datというファイルに一文字ずつ書き込む'(M2,Input,Output),!.

カーソルから行の終わりまでを消去 :- put_code(27),write('[K').

カーソルをPc桁左へ移動(Pc) :- put_code(27),write_formatted('[%tD',[Pc]).