Open Cons
Opens the console's standard input (stdin) or output (stdout) streams, using it as if it were file operations.
Syntax
`
Open Cons As [#]filenumber
Open Cons For Input As [#]filenumber
Open Cons For Output As [#]filenumber
`
Usage
`
result = Open Cons( [For {Input|Output}[,]] As filenumber )
`(or using the QB-like syntax,)`
`
Open Cons [For {Input|Output}] As filenumber
Parameters
`filenumber`
An available file number to bind to the stdin or stdout stream, which can be found with `FreeFile`.
Return Value
In the first usage, `Open Cons()` returns a 32 bit `Long`: a zero (0) on success and a non-zero error code otherwise.
Description
`Open Cons` opens the console's stdin or stdout streams for reading or writing. A file number is bound to the stream, which is used in subsequent file operations, such as `Input #`. An available file number can be retrieved with `FreeFile`.
The `Input` file mode opens the stdin stream for reading file operations, such as `Line Input #`, while the `Output` file mode opens the stdout stream for writing file operations, such as `Print #`. The `Output` file mode is the default if not specified.
The stdin and stdout streams are the ones used when the calling process' input or output is redirected (piped) by OS commands, or when it is opened with `Open Pipe`.
To open both the stdin and stdout streams for file operations, a process must use multiple file numbers.
The normal screen commands, such as `Color` and `Locate`, do not work in this mode, because they do not accept a file number.
The `Tab` keyword, regardless of the given column number, is always interpreted as a simple comma (`,`) (next output will take place at the next 14 column boundary).
The error code returned by `Open Cons` can be checked using `Err` in the next line. The function version of `Open Cons` returns directly the error code as a 32 bit `Long`.
Warning: Presently, `Open Cons` does not work as described above. Without any file mode specifier, a runtime error 1 (illegal function call) occurs. With the `Input` file mode specifier, the only input mode is well supported. But with the `Output` file mode specifier, input and output modes are simultaneously supported.
Runtime errors:
`Open Cons` throws one of the following runtime errors:
(`1`) Illegal function call

- `filenumber` was not free at the time. use `FreeFile` to ensure that `filenumber` is free.

Example
`
Dim a As String
Open Cons For Input As #1
Open Cons For Output As #2
Print #2,"Please write something and press ENTER"
Line Input #1,a
Print #2, "You wrote : ";a
Close
Sleep
`
Differences from QB

- In QB the syntax was `OPEN "CON:" FOR INPUT|OUTPUT AS [#] filenumber`

See also

- `Open`
- `Open Scrn`
- `Open Err`
- `FreeFile`