Вы имеете в виду TextReader.Read
и TextReader.ReadLine
?
Одна перегрузка TextReader.Read
читает символы в буфер (a char[]
), и вы можете указать, сколько символов вы хотите, чтобы он прочитал (как максимум). Другой читает один символ, возвращая int
, который будет равен -1, если вы достигли конца читателя.
TextReader.ReadLine
читает всю строку как string
, которая не включает в себя терминатор строки.
Насколько я знаю, endl
чаще используется вместе с cout
в C ++:
cout << "Here's a line" << endl;
В .NET вы бы использовали
writer.WriteLine("Here's a line")
для выполнения того же действия (для соответствующего TextWriter
; в качестве альтернативы используйте Console.WriteLine
для консоли).
EDIT: Console.ReadLine
читает строку текста, тогда как Console.Read
читает один символ (это похоже на перегрузку без параметров TextWriter.Read
).
Console.ReadLine()
в основном совпадает с Console.In.ReadLine()
, а Console.Read()
в основном совпадает с Console.In.Read()
.
РЕДАКТИРОВАТЬ: В ответ на ваш комментарий к другому ответу, вы не можете сделать:
int x = Console.ReadLine();
потому что тип возвращаемого значения Console.ReadLine()
является строкой, и преобразование из string
в int
отсутствует. Вы можете сделать
int x = Console.Read();
потому что Console.Read()
возвращает int
. (Опять же, это кодовая точка Unicode или -1 для «конца данных».)
РЕДАКТИРОВАТЬ: Если вы хотите прочитать целое число с клавиатуры, то есть пользователь вводит «15», и вы хотите получить это как целое число, вы должны использовать что-то вроде:
string line = Console.ReadLine();
int value;
if (int.TryParse(line, out value))
{
Console.WriteLine("Successfully parsed value: {0}", value);
}
else
{
Console.WriteLine("Invalid number - try again!");
}