Condividi tramite


Console.Read Metodo

Definizione

Legge il carattere successivo dal flusso di input standard.

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

Restituisce

Carattere successivo dal flusso di input oppure il valore uno negativo (-1) se non ci sono altri caratteri da leggere.

Attributi

Eccezioni

Si è verificato un errore di I/O.

Esempio

Nell'esempio seguente viene illustrato il Read metodo.

// 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.
'

Commenti

Il Read metodo blocca la restituzione mentre si digitano caratteri di input; termina quando si preme il Enter tasto. Premendo INVIO viene aggiunta una sequenza di terminazione della riga dipendente dalla piattaforma all'input, ad esempio Windows aggiunge una sequenza di ritorno a capo a capo. Le chiamate successive al Read metodo recuperano un carattere di input alla volta. Dopo aver recuperato il carattere finale, Read blocca nuovamente il relativo ritorno e il ciclo si ripete.

Importante

Il ReadLine metodo o la proprietà e ReadKey il KeyAvailable metodo sono preferibili all'uso del Read metodo.

Si noti che il metodo non restituisce -1 a meno che non si esegua una delle azioni seguenti:

  • Premere simultaneamente il tasto modificatore e Z il Control tasto console (CTRL+Z), che segnala la condizione end-of-file. Se si è in Windows, è necessario premere anche il Enter tasto della console.

  • Premere un tasto equivalente che segnala la condizione end-of-file, ad esempio il tasto funzione F6 in Windows.

  • Reindirizzare il flusso di input a un'origine, ad esempio un file di testo, con un carattere end-of-file effettivo.

Si applica a

Vedi anche