Fondamentaux C# : Entrées et sorties essentielles
Fondamentaux C# : Entrées et sorties essentielles
Ce guide vous présente les techniques de base d'entrée et de sortie en C#, montrant comment lire les données utilisateur et afficher les résultats de manière fiable.
Sortie en C#
Pour écrire des données dans la console, C# offre deux méthodes principales :
System.Console.WriteLine()
System.Console.Write()
Ici, System est l'espace de noms, Console est une classe dans cet espace de noms, et WriteLine et Write sont ses méthodes.
Exemple 1 : Afficher une chaîne avec WriteLine()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("C# is cool");
}
}
}
L'exécution du programme produit :
C# is cool
Différence entre WriteLine() et Write()
WriteLine() affiche le texte fourni et passe à la ligne suivante, tandis que Write() imprime le texte sans ajouter de saut de ligne.
Exemple 2 : Utilisation de WriteLine() et Write()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("Affiche sur ");
Console.WriteLine("Nouvelle ligne");
Console.Write("Affiche sur ");
Console.Write("Même ligne");
}
}
}
Sortie :
Affiche sur Nouvelle ligne Affiche sur Même ligne
Affichage de variables et de littéraux
WriteLine() et Write() peuvent tous deux afficher des variables et des littéraux.
Exemple 3 : Variables et littéraux
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int value = 10; // Variable
Console.WriteLine(value); // Littéral
Console.WriteLine(50.05);
}
}
}
Résultat :
10 50.05
Concaténation de chaînes avec l'opérateur +
Les chaînes peuvent être combinées en utilisant l'opérateur + lors de l'affichage.
Exemple 4 : Sortie concaténée
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int val = 55;
Console.WriteLine("Hello " + "World");
Console.WriteLine("Valeur = " + val);
}
}
}
Résultat :
Hello World Valeur = 55
Chaînes formatées – Une approche plus propre
Les chaînes formatées permettent d'incorporer des espaces réservés qui sont remplacés à l'exécution, améliorant la lisibilité et réduisant les erreurs.
Par exemple, au lieu de :
Console.WriteLine("Valeur = " + val);
utilisez :
Console.WriteLine("Valeur = {0}", val);
Ici, {0} est un espace réservé pour val. Plusieurs variables sont gérées avec des espaces réservés supplémentaires.
Exemple 5 : Utilisation du formatage de chaînes
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int firstNumber = 5, secondNumber = 10, result;
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
}
}
}
Sortie :
5 + 10 = 15
Cette méthode est plus lisible et moins sujette aux erreurs que la concaténation manuelle.
En savoir plus sur le formatage de chaînes dans Formatage de chaînes C#.
Entrée en C#
La façon la plus simple de capturer l'entrée utilisateur est Console.ReadLine(). Pour une entrée plus granulaire, Read() et ReadKey() sont également disponibles.
Exemple 6 : Lecture d'une chaîne depuis l'utilisateur
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
string testString;
Console.Write("Entrez une chaîne - ");
testString = Console.ReadLine();
Console.WriteLine("Vous avez entré '{0}'", testString);
}
}
}
Sortie :
Entrez une chaîne - Hello World Vous avez entré 'Hello World'
Comprendre ReadLine(), Read() et ReadKey()
- ReadLine() : Lit une ligne entière depuis le flux d'entrée et la retourne sous forme de chaîne.
- Read() : Lit le caractère suivant et retourne sa valeur ASCII.
- ReadKey() : Capture une frappe de touche sans attendre la touche Entrée ; utile pour les invites de pause.
Pour plus de détails, consultez la discussion sur StackOverflow intitulée « Difference between Console.Read() and Console.ReadLine? ».
Exemple 7 : Démonstration de Read() et ReadKey()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int userInput;
Console.WriteLine("Appuyez sur une touche pour continuer...");
Console.ReadKey();
Console.WriteLine();
Console.Write("Entrée avec Read() - ");
userInput = Console.Read();
Console.WriteLine("Valeur ASCII = {0}", userInput);
}
}
}
Sortie :
Appuyez sur une touche pour continuer... x Entrée avec Read() - Learning C# Valeur ASCII = 76
Remarquez que ReadKey() affiche la touche immédiatement, tandis que Read() capture une ligne mais ne retourne que le code ASCII du premier caractère (ici, 76 pour 'L').
Lecture de valeurs numériques
Bien que les chaînes soient lues directement, les types numériques nécessitent une conversion. La classe Convert fournit des méthodes simples.
Exemple 8 : Conversion de l'entrée utilisateur en nombres
using System;
namespace UserInput {
class MyClass {
public static void Main(string[] args) {
string userInput;
int intVal;
double doubleVal;
Console.Write("Entrez une valeur entière : ");
userInput = Console.ReadLine();
intVal = Convert.ToInt32(userInput);
Console.WriteLine("Vous avez entré {0}", intVal);
Console.Write("Entrez une valeur double : ");
userInput = Console.ReadLine();
doubleVal = Convert.ToDouble(userInput);
Console.WriteLine("Vous avez entré {0}", doubleVal);
}
}
}
Résultat :
Entrez une valeur entière : 101 Vous avez entré 101 Entrez une valeur double : 59.412 Vous avez entré 59.412
Les méthodes ToInt32() et ToDouble() de Convert transforment la chaîne d'entrée en type numérique souhaité. Une liste complète des méthodes de conversion est disponible dans la documentation .NET.
Explorez des stratégies alternatives de saisie numérique dans Lecture d'un entier depuis l'entrée utilisateur.
Langue C
- Élargir les horizons cloud : nouvelles zones, conteneurs, et stratégies multicloud
- Pourquoi Cloud Linux Boost la Sécurité, Stabilité et Performance en Hébergement Partagé
- Maîtriser l'entrée/sortie en C++ : Guide pratique
- Maîtriser l'entrée/sortie en C : scanf() et printf() expliqués
- Maîtriser les E/S et l'importation de modules en Python : Guide pratique
- Maîtriser l'entrée/sortie Java : Afficher, lire et formater vos données
- Boîtes aux lettres dans Nucleus SE : Guide pratique de configuration et d'utilisation
- Sémaphores dans Nucleus SE : Vue d'ensemble, configuration et API essentielles
- Files d'attente dans Nucleus SE : Introduction et appels de service de base