TheDeveloperBlog.com


C# Console.Read Method

Console.Read reads in characters from the console. It returns, as an integer, each value until a zero is reached. This signifies the end of the user's input. It should be called in a loop to get all the buffered characters.


Example. First, we look at a console program written in the C# language. It is intended to demonstrate the exact behavior of the Console.Read public static method when used in a while-loop in a terminal window.

Static MethodWhile

Note: When the Read method is first called, it blocks execution waiting for the input to be sent by the terminal window.

Finally: It returns when the input is final. Then, you must call it in a loop to read the entire remaining buffer.

C# program that uses Console.Read method

using System;

class Program
{
    static void Main()
    {
	// This program accepts console input.
	// ... When the enter key is pressed, the Read method returns the first time.
	// ... Then, each call to Read accesses one further character from the input.
	int result;
	while ((result = Console.Read()) != 0)
	{
	    Console.WriteLine("{0} = {1}", result, (char)result);
	}
    }
}

Output
    Enter is pressed after first line.

dotnetperls
100 = d
111 = o
116 = t
110 = n
101 = e
116 = t
112 = p
101 = e
114 = r
108 = l
115 = s
13 =
10 =

In this program, the local integer variable with identifier "result" is used as an assignment in the loop condition. The conditional expression continues until zero is received from Console.Read—this occurs at the end of the input.

Then, the program outputs the integer representation and the character representation of each value in the buffer. The final two characters (13 and 10) are equal to the Windows newline.

Environment.NewLine

Summary. We looked at the Console.Read method. We applied it in a program that prints the exact terminal buffer contents. This method is normally used in a loop in console programs that can accept more than one character.

Tip: If you just need one character, skip the loop. Read does not return until the input is final and the user presses the enter key.

Tip 2: For most programs that require strings from the terminal, please consider the Console.ReadLine method.

Console.ReadLine Tips