read()和readline()#在C#之间有什么区别?
也许我们不使用它,但在我的学院里,唯一的区别是一个人有"线"而另一个没有...在c ++中,有"cin"并且它有"endl"来添加行.有人可以告诉我区别吗?
你的意思是TextReader.Read和TextReader.ReadLine?
TextReader.Read将字符读入缓冲区(a char[])的一次重载,您可以指定要读取的字符数(最大值).另一个读取单个字符,int如果你已经到达读者的末尾,则返回-1.
TextReader.ReadLine读取整行作为a string,不包括行终止符.
据我所知,在C++中endl更常用的是cout:
cout << "Here's a line" << endl;
Run Code Online (Sandbox Code Playgroud)
在.NET中你会使用
writer.WriteLine("Here's a line")
Run Code Online (Sandbox Code Playgroud)
完成同样的事情(适当的TextWriter;或者Console.WriteLine用于控制台).
编辑:Console.ReadLine读取一行文本,而Console.Read读取单个字符(就像无参数重载一样TextWriter.Read).
Console.ReadLine()基本上是一样的Console.In.ReadLine(),并Console.Read()基本上是一样的Console.In.Read().
编辑:在回答您对其他答案的评论时,您不能这样做:
int x = Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
因为返回类型Console.ReadLine()是一个字符串,并且没有转换string为int.你可以做到
int x = Console.Read();
Run Code Online (Sandbox Code Playgroud)
因为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!");
}
Run Code Online (Sandbox Code Playgroud)