[英]What is the difference between read and readline in C#?
C#中read()
和readline()
之間有什么區別?
也許我們不使用它,但在我的學院里,唯一的區別是一個人有“線”而另一個沒有...在c ++中,有“cin”並且它有“endl”來添加行。 有人可以告訴我區別嗎?
你的意思是TextReader.Read
和TextReader.ReadLine
?
TextReader.Read
一個重載將TextReader.Read
讀入緩沖區( char[]
),您可以指定要讀取的字符數(作為最大值)。 另一個讀取單個字符,返回一個int
,如果你已經到達讀者的末尾將為-1。
TextReader.ReadLine
將整行讀作string
,不包括行終止符。
據我所知, endl
更常用於C ++中的cout
:
cout << "Here's a line" << endl;
在.NET中你會使用
writer.WriteLine("Here's a line")
完成相同的事情(對於適當的TextWriter
;或者使用Console.WriteLine
作為控制台)。
編輯: 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!");
}
如果您正在談論Console.Read和Console.ReadLine,區別在於Read只返回一個字符,而ReadLine返回整個輸入行。 重要的是要注意,在這兩種情況下,API調用都不會返回,直到用戶按ENTER鍵將文本提交給程序。 因此,如果您鍵入“abc”但不按ENTER鍵,Read和ReadLine都會阻塞,直到您執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.