Related to the console (command line) are terms such as standard input and standard output. The input is usually the keyboard. The output is the screen. In windowing systems, the output is the console (command line) window.
The keyboard has a data buffer that stores the characters that correspond to the keystrokes pressed by the user (input stream). The screen buffer (output stream) is bound to the screen. So the data at the console input is separated from the data at the console output.
The following procedures are used to retrieve data from the console input (keyboard): Read and ReadLn. The Write and WriteLn procedures are used to write data to the screen (console window). The "Ln" suffix stands for a line of text. The line of text consists of a string followed by a delimiter. They are different for different operating systems: CR (Mac), LF (Unix/Linux) or CRLF (Windows).
The Read procedure reads only as many characters as it can put in the variable. So you can pass several variables to it as arguments. The ReadLn procedure, on the other hand, reads the characters from the buffer together with the text delimiter. In both cases, characters are removed from console input after reading. Both of these routines can convert characters to base data types.
The Write procedure transfers the string that is displayed in the console window. The WriteLn procedure, on the other hand, adds a delimiter to the transferred characters. The result is that in the latter case, after writing text to the console window, the text cursor should move to the next line in the console window.
So if the WriteLn procedure writes a string of characters and puts a delimiter at the end, the result is that the text cursor in the console will move to the next line. And that's it. Attempting to read anything using the ReadLn routine will in no way result in reading this delimiter, because the console input is separate from the console output (ie the keyboard buffer from the screen buffer).
Please note that the above-mentioned procedures do not convert the contents of variables that are programmer-defined types.
Finally, one more thing: the question of using the ReadLn procedure call without any arguments in your code. If no arguments are given, this routine will only read the string delimiter from the console input, but only if the user presses the Enter key. It is usually used to stop the system from closing the console window so that the user has time to read the text on the screen. If the call was not in the program code, the program would exit immediately after processing the data and displaying the results, which means that the console window would also be closed.
The above description is deliberately simplified to explain only the most important issues related to the console (command line) operation.