Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais
Cette documentation est archivée et n’est pas conservée.

Console.ReadLine, méthode

Lit la ligne de caractères suivante à partir du flux d'entrée standard.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, UI = true)]
public static string ReadLine()

Valeur de retour

Type : System.String
Ligne suivante de caractères du flux d'entrée, ou null s'il n'y a plus de lignes disponibles.

ExceptionCondition
IOException

Une erreur d'E/S s'est produite.

OutOfMemoryException

La mémoire disponible est insuffisante pour allouer une mémoire tampon pour la chaîne retournée.

ArgumentOutOfRangeException

Le nombre de caractères contenus dans la ligne suivante de caractères est supérieur à Int32.MaxValue

Une ligne est définie comme une séquence de caractères suivie d'un retour chariot (0x000d hexadécimal), d'un saut de ligne (0x000a hexadécimal) ou de la valeur de la propriété Environment.NewLine. La chaîne retournée ne contient pas de caractère de fin.

Si cette méthode lève OutOfMemoryException, la position du lecteur dans le Stream sous-jacent est avancée du nombre de caractères que la méthode a pu lire, mais les caractères déjà lus dans la mémoire tampon du ReadLine interne sont ignorés. Comme la position du lecteur dans le flux ne peut pas être modifiée, les caractères déjà lus sont irrécupérables et sont accessibles uniquement en réinitialisant TextReader. Si la position initiale dans le flux est inconnue ou si le flux ne prend pas en charge la recherche, le Stream sous-jacent doit également être réinitialisé.

Pour éviter une telle situation et produire du code robuste, utilisez la méthode Read et stockez les caractères lus dans une mémoire tampon préallouée.

Si le caractère CTRL+Z est activé lorsque la méthode lit l'entrée de la console, la méthode retourne null. Cela permet à l'utilisateur d'empêcher des entrées au clavier supplémentaires lorsque la méthode ReadLine est appelée dans une boucle. L'exemple suivant illustre ce scénario.


using System;

public class Example
{
   public static void Main()
   {
      string line;
      Console.WriteLine("Enter one or more lines of text (press CTRL+Z to exit):");
      Console.WriteLine();
      do { 
         Console.Write("   ");
         line = Console.ReadLine();
         if (line != null) 
            Console.WriteLine("      " + line);
      } while (line != null);   
   }
}
// The following displays possible output from this example:
//       Enter one or more lines of text (press CTRL+Z to exit):
//       
//          This is line #1.
//             This is line #1.
//          This is line #2
//             This is line #2
//          ^Z
//       
//       >


RemarqueRemarque

L'attribut HostProtectionAttribute appliqué à ce type ou membre a la valeur de propriété Resources suivante : UI. HostProtectionAttribute n'affecte pas les applications bureautiques (qui sont généralement démarrées en double-cliquant sur une icône, en tapant une commande ou en entrant une URL dans un navigateur). Pour plus d'informations, consultez la classe HostProtectionAttribute ou Attributs de programmation et de protection des hôtes SQL Server.

L'exemple suivant requiert deux arguments de ligne de commande : le nom d'un fichier texte existant et le nom d'un fichier dans lequel la sortie sera écrite. Il ouvre le fichier texte existant et redirige l'entrée standard du clavier vers ce fichier. Il redirige également la sortie standard de la console vers le fichier de sortie. Il utilise alors la méthode Console.ReadLine pour lire chaque ligne du fichier, remplace chaque séquence de quatre espaces par une tabulation et utilise la méthode Console.WriteLine pour écrire le résultat dans le fichier de sortie.


using System;
using System.IO;

public class InsertTabs {
    private const int tabSize = 4;
    private const string usageText = "Usage: INSERTTABS inputfile.txt outputfile.txt";
    public static int Main(string[] args) {
        StreamWriter writer = null;

        if (args.Length < 2) {
            Console.WriteLine(usageText);
            return 1;
        }

        try {
            // Attempt to open output file.
            writer = new StreamWriter(args[1]);
            // Redirect standard output from the console to the output file.
            Console.SetOut(writer);
            // Redirect standard input from the console to the input file.
            Console.SetIn(new StreamReader(args[0]));
        }
        catch(IOException e) {
            TextWriter errorWriter = Console.Error;
            errorWriter.WriteLine(e.Message);
            errorWriter.WriteLine(usageText);
            return 1;            
        }
        string line;
        while ((line = Console.ReadLine()) != null) {
            string newLine = line.Replace(("").PadRight(tabSize, ' '), "\t");
            Console.WriteLine(newLine);
        }
        writer.Close();
        // Recover the standard output stream so that a 
        // completion message can be displayed.
        StreamWriter standardOutput = new StreamWriter(Console.OpenStandardOutput());
        standardOutput.AutoFlush = true;
        Console.SetOut(standardOutput);
        Console.WriteLine("INSERTTABS has completed the processing of {0}.", args[0]);
        return 0;
    }
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Afficher: