File10. Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке.
>Решение Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | program File10; var S:String; F_in,F_out: File of Integer; i,temp,len:integer; begin Write('File1: '); Readln(S); Assign(F_in,S); Reset(F_in); Write('File2: '); Readln(S); Assign(F_out,S); ReWrite(F_out); len:=1; while (not eof(F_in)) do begin Read(F_in,temp); inc(len); end; while (len>0) do begin Close(F_in); Reset(F_in); i:=1; while (not eof(F_in)) and (i<>len) do begin Read(F_in,temp); inc(i); end; Write(F_out,temp); dec(len); end; Close(F_in); Close(F_out); end. |
Решение C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <iostream> #include <fstream> #include <stack> #include <algorithm> #include <iterator> /* Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке */ int main(){ std::ifstream ifs("num.txt"); if ( ! ifs.is_open() ){ std::cerr << "Can't open input file!" << std::endl; return 1; } std::stack<int> st; int num; while ( ifs >> num ) st.push(num); if ( ifs.bad() ){ std::cerr << "Can't read from input file!" << std::endl; return 1; } ifs.close(); std::ofstream ofs("reverse_num.txt"); if ( ! ofs.is_open() ){ std::cerr << "Can't open output file!" << std::endl; return 1; } while ( ! st.empty() ){ ofs << st.top() << std::endl; if ( ofs.bad() ){ std::cerr << "Can't write to output file!" << std::endl; return 1; } st.pop(); } ofs.close(); std::cout << "Done." << std::endl; return 0; } |
program file10;
var
f1,f2:file of integer;
s1,s2:string;
n1,n,i:integer;
begin
writeln(‘f1,f2’);
readln(s1);
readln(s2);
assign(f1,s1);
assign(f2,s2);
{$I-}
reset(f1);
if IOResult=0 then begin
n:=0;
while not eof(f1) do begin
read(f1,i); inc(n);
end;close(f1);
writeln(‘f1′);
reset(f1);
while not eof(f1) do begin
read(f1,i);write(i,’ ‘);
end;close(f1);
writeln();
rewrite(f2);
reset(f1);
n1:=n;
while not eof(f1) do begin
read(f1,i);
seek(f2,n1-1);
write(f2,i);
dec(n1,1);
end;close(f1);
close(f2);
writeln(‘f2′);
reset(f2);
while not eof(f2) do begin
read(f2,i);write(i,’ ‘);
end;close(f2);
end;//iores
end.