File input/output is part of Short Circuit's Console Program Basics selection.
Task

Create a file called   "output.txt",   and place in it the contents of the file   "input.txt",   via an intermediate variable.

In other words, your program will demonstrate:

   how to read from a file into a variable
   how to write a variable's contents into a file


Oneliners that skip the intermediate variable are of secondary interest — operating systems have copy commands for that.




GET "libhdr"
 
LET start() BE $(
 
    // Attempt to open the named files.
    LET source = findinput("input.txt")
    LET destination = findoutput("output.txt")
 
    TEST source = 0 THEN
        writes("Unable to open input.txt*N")
    ELSE TEST destination = 0 THEN
        writes("Unable to open output.txt*N")
    ELSE $(
 
        // The current character, initially unknown.
        LET ch = ?
 
        // Make the open files the current input and output streams.
        selectinput(source)
        selectoutput(destination)
 
        // Copy the input to the output character by character until
        // endstreamch is returned to indicate input is exhausted.
        ch := rdch()
        UNTIL ch = endstreamch DO $(
            wrch(ch)
            ch := rdch()
        $)
 
        // Close the currently selected streams.
        endread()
        endwrite() 
    $)  
$)