Console.Read Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přečte další znak ze standardního vstupního streamu.
public:
static int Read();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static int Read ();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatform("android")]
public static int Read ();
public static int Read ();
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member Read : unit -> int
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("android")>]
static member Read : unit -> int
static member Read : unit -> int
Public Shared Function Read () As Integer
Návraty
Další znak ze vstupního datového proudu nebo záporná hodnota (-1), pokud aktuálně nejsou k dispozici žádné znaky pro čtení.
- Atributy
Výjimky
Došlo k vstupně-výstupní chybě.
Příklady
Následující příklad ukazuje Read metodu.
// This example demonstrates the Console.Read() method.
using namespace System;
int main()
{
String^ m1 = "\nType a string of text then press Enter. "
"Type '+' anywhere in the text to quit:\n";
String^ m2 = "Character '{0}' is hexadecimal 0x{1:x4}.";
String^ m3 = "Character is hexadecimal 0x{0:x4}.";
Char ch;
int x;
//
Console::WriteLine( m1 );
do
{
x = Console::Read();
try
{
ch = Convert::ToChar( x );
if ( Char::IsWhiteSpace( ch ) )
{
Console::WriteLine( m3, x );
if ( ch == 0x0a )
Console::WriteLine( m1 );
}
else
Console::WriteLine( m2, ch, x );
}
catch ( OverflowException^ e )
{
Console::WriteLine( "{0} Value read = {1}.", e->Message, x );
ch = Char::MinValue;
Console::WriteLine( m1 );
}
}
while ( ch != '+' );
}
/*
This example produces the following results:
Type a string of text then press Enter. Type '+' anywhere in the text to quit:
The quick brown fox.
Character 'T' is hexadecimal 0x0054.
Character 'h' is hexadecimal 0x0068.
Character 'e' is hexadecimal 0x0065.
Character is hexadecimal 0x0020.
Character 'q' is hexadecimal 0x0071.
Character 'u' is hexadecimal 0x0075.
Character 'i' is hexadecimal 0x0069.
Character 'c' is hexadecimal 0x0063.
Character 'k' is hexadecimal 0x006b.
Character is hexadecimal 0x0020.
Character 'b' is hexadecimal 0x0062.
Character 'r' is hexadecimal 0x0072.
Character 'o' is hexadecimal 0x006f.
Character 'w' is hexadecimal 0x0077.
Character 'n' is hexadecimal 0x006e.
Character is hexadecimal 0x0020.
Character 'f' is hexadecimal 0x0066.
Character 'o' is hexadecimal 0x006f.
Character 'x' is hexadecimal 0x0078.
Character '.' is hexadecimal 0x002e.
Character is hexadecimal 0x000d.
Character is hexadecimal 0x000a.
Type a string of text then press Enter. Type '+' anywhere in the text to quit:
^Z
Value was either too large or too small for a character. Value read = -1.
Type a string of text then press Enter. Type '+' anywhere in the text to quit:
+
Character '+' is hexadecimal 0x002b.
*/
// This example demonstrates the Console.Read() method.
using System;
class Sample
{
public static void Main()
{
string m1 = "\nType a string of text then press Enter. " +
"Type '+' anywhere in the text to quit:\n";
string m2 = "Character '{0}' is hexadecimal 0x{1:x4}.";
string m3 = "Character is hexadecimal 0x{0:x4}.";
char ch;
int x;
//
Console.WriteLine(m1);
do
{
x = Console.Read();
try
{
ch = Convert.ToChar(x);
if (Char.IsWhiteSpace(ch))
{
Console.WriteLine(m3, x);
if (ch == 0x0a)
Console.WriteLine(m1);
}
else
{
Console.WriteLine(m2, ch, x);
}
}
catch (OverflowException e)
{
Console.WriteLine("{0} Value read = {1}.", e.Message, x);
ch = Char.MinValue;
Console.WriteLine(m1);
}
} while (ch != '+');
}
}
/*
This example produces the following results:
Type a string of text then press Enter. Type '+' anywhere in the text to quit:
The quick brown fox.
Character 'T' is hexadecimal 0x0054.
Character 'h' is hexadecimal 0x0068.
Character 'e' is hexadecimal 0x0065.
Character is hexadecimal 0x0020.
Character 'q' is hexadecimal 0x0071.
Character 'u' is hexadecimal 0x0075.
Character 'i' is hexadecimal 0x0069.
Character 'c' is hexadecimal 0x0063.
Character 'k' is hexadecimal 0x006b.
Character is hexadecimal 0x0020.
Character 'b' is hexadecimal 0x0062.
Character 'r' is hexadecimal 0x0072.
Character 'o' is hexadecimal 0x006f.
Character 'w' is hexadecimal 0x0077.
Character 'n' is hexadecimal 0x006e.
Character is hexadecimal 0x0020.
Character 'f' is hexadecimal 0x0066.
Character 'o' is hexadecimal 0x006f.
Character 'x' is hexadecimal 0x0078.
Character '.' is hexadecimal 0x002e.
Character is hexadecimal 0x000d.
Character is hexadecimal 0x000a.
Type a string of text then press Enter. Type '+' anywhere in the text to quit:
^Z
Value was either too large or too small for a character. Value read = -1.
Type a string of text then press Enter. Type '+' anywhere in the text to quit:
+
Character '+' is hexadecimal 0x002b.
*/
// This example demonstrates the Console.Read() method.
open System
// string m2 = "Character '{0}' is hexadecimal 0x{1:x4}.";
// string m3 = "Character is hexadecimal 0x{0:x4}.";
// char ch;
printfn "\nType a string of text then press Enter. Type '+' anywhere in the text to quit:\n"
let mutable ch = ' '
let mutable x = 0
while ch <> '+' do
x <- Console.Read()
try
ch <- Convert.ToChar x
if Char.IsWhiteSpace ch then
printfn $"Character is hexadecimal 0x{x:x4}."
if ch = char '\u000A' then
printfn "\nType a string of text then press Enter. Type '+' anywhere in the text to quit:\n"
else
printfn $"Character '{ch}' is hexadecimal 0x{x:x4}."
with :? OverflowException as e ->
printfn $"{e.Message} Value read = {x}."
ch <- Char.MinValue
printfn "\nType a string of text then press Enter. Type '+' anywhere in the text to quit:\n"
// This example produces the following results:
//
// Type a string of text then press Enter. Type '+' anywhere in the text to quit:
//
// The quick brown fox.
// Character 'T' is hexadecimal 0x0054.
// Character 'h' is hexadecimal 0x0068.
// Character 'e' is hexadecimal 0x0065.
// Character is hexadecimal 0x0020.
// Character 'q' is hexadecimal 0x0071.
// Character 'u' is hexadecimal 0x0075.
// Character 'i' is hexadecimal 0x0069.
// Character 'c' is hexadecimal 0x0063.
// Character 'k' is hexadecimal 0x006b.
// Character is hexadecimal 0x0020.
// Character 'b' is hexadecimal 0x0062.
// Character 'r' is hexadecimal 0x0072.
// Character 'o' is hexadecimal 0x006f.
// Character 'w' is hexadecimal 0x0077.
// Character 'n' is hexadecimal 0x006e.
// Character is hexadecimal 0x0020.
// Character 'f' is hexadecimal 0x0066.
// Character 'o' is hexadecimal 0x006f.
// Character 'x' is hexadecimal 0x0078.
// Character '.' is hexadecimal 0x002e.
// Character is hexadecimal 0x000d.
// Character is hexadecimal 0x000a.
//
// Type a string of text then press Enter. Type '+' anywhere in the text to quit:
//
// ^Z
// Value was either too large or too small for a character. Value read = -1.
//
// Type a string of text then press Enter. Type '+' anywhere in the text to quit:
//
// +
// Character '+' is hexadecimal 0x002b.
' This example demonstrates the Console.Read() method.
Class Sample
Public Shared Sub Main()
Dim m1 As String = _
vbCrLf & _
"Type a string of text then press Enter. " & _
"Type '+' anywhere in the text to quit:" & _
vbCrLf
Dim m2 As String = "Character '{0}' is hexadecimal 0x{1:x4}."
Dim m3 As String = "Character is hexadecimal 0x{0:x4}."
Dim ch As Char
Dim x As Integer
'
Console.WriteLine(m1)
Do
x = Console.Read()
Try
ch = Convert.ToChar(x)
If Char.IsWhiteSpace(ch) Then
Console.WriteLine(m3, x)
If ch = vbLf Then
Console.WriteLine(m1)
End If
Else
Console.WriteLine(m2, ch, x)
End If
Catch e As OverflowException
Console.WriteLine("{0} Value read = {1}.", e.Message, x)
ch = Char.MinValue
Console.WriteLine(m1)
End Try
Loop While ch <> "+"c
End Sub
End Class
'
'This example produces the following results:
'
'Type a string of text then press Enter. Type '+' anywhere in the text to quit:
'
'The quick brown fox.
'Character 'T' is hexadecimal 0x0054.
'Character 'h' is hexadecimal 0x0068.
'Character 'e' is hexadecimal 0x0065.
'Character is hexadecimal 0x0020.
'Character 'q' is hexadecimal 0x0071.
'Character 'u' is hexadecimal 0x0075.
'Character 'i' is hexadecimal 0x0069.
'Character 'c' is hexadecimal 0x0063.
'Character 'k' is hexadecimal 0x006b.
'Character is hexadecimal 0x0020.
'Character 'b' is hexadecimal 0x0062.
'Character 'r' is hexadecimal 0x0072.
'Character 'o' is hexadecimal 0x006f.
'Character 'w' is hexadecimal 0x0077.
'Character 'n' is hexadecimal 0x006e.
'Character is hexadecimal 0x0020.
'Character 'f' is hexadecimal 0x0066.
'Character 'o' is hexadecimal 0x006f.
'Character 'x' is hexadecimal 0x0078.
'Character '.' is hexadecimal 0x002e.
'Character is hexadecimal 0x000d.
'Character is hexadecimal 0x000a.
'
'Type a string of text then press Enter. Type '+' anywhere in the text to quit:
'
'^Z
'Value was either too large or too small for a character. Value read = -1.
'
'Type a string of text then press Enter. Type '+' anywhere in the text to quit:
'
'+
'Character '+' is hexadecimal 0x002b.
'
Poznámky
ReadMetoda zablokuje své vrácení při psaní vstupních znaků; při stisknutí klávesy se ukončí Enter . stisknutí klávesy Enter připojí k vašemu vstupu sekvenci ukončení řádku závislou na platformě (například Windows připojí sekvenci návratového znaku cr). Následná volání Read metody načtou vstupní znak po jednom. Po načtení finálního znaku Read zablokuje jeho návrat a cyklus opakuje.
Důležité
ReadLineMetodu, nebo KeyAvailable vlastnost a metoda, ReadKey je vhodnější použít Read metodu.
Všimněte si, že metoda nevrátí hodnotu-1, Pokud neprovedete jednu z následujících akcí:
Současně stiskněte Control modifikační klávesu a Z klíč konzoly (CTRL + Z), což signalizuje stav konce souboru. pokud používáte Windows, musíte také stisknout klávesu Enter konzoly.
Stiskněte ekvivalentní klíč, který signalizuje stav konce souboru, například klávesa funkce F6 v Windows.
Přesměrujte vstupní datový proud na zdroj, například textový soubor, který má skutečný znak konce souboru.