簡體   English   中英

C#中的read和readline有什么區別?

[英]What is the difference between read and readline in C#?

C#中read()readline()之間有什么區別?

也許我們不使用它,但在我的學院里,唯一的區別是一個人有“線”而另一個沒有...在c ++中,有“cin”並且它有“endl”來添加行。 有人可以告訴我區別嗎?

你的意思是TextReader.ReadTextReader.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()的返回類型是一個字符串,並且沒有從stringint轉換。 可以做到

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM