49 votes

Comment puis-je lire les entrées utilisateur depuis la console ?

Je veux obtenir un nombre de l'utilisateur, puis multiplier ce nombre par Pi. ma tentative est ci-dessous. Mais a contient du charabia. Par exemple, si j'insère 22 , alors a contient 50 . Qu'est-ce que je fais mal? Je ne reçois aucune erreur de compilation.

 double a,b;
a = Console.Read();
b = a * Math.PI;
Console.WriteLine(b);

74voto

Øyvind Bråthen Points 25211

Je ne sais pas quel est votre problème (puisque vous ne nous l'avez pas dit), mais je suppose

 a = Console.Read();

Cela ne lira qu'un seul caractère de votre console.

Vous pouvez modifier votre programme en conséquence. Pour le rendre plus robuste, acceptez plus d'une entrée de caractère et validez que l'entrée est en fait un nombre :

 double a, b;
Console.WriteLine("istenen sayıyı sonuna .00 koyarak yaz");
if (double.TryParse(Console.ReadLine(), out a)) {
  b = a * Math.PI;
  Console.WriteLine("Sonuç " + b); 
} else {
  //user gave an illegal input. Handle it here.
}

6voto

abatishchev Points 42425
string input = Console.ReadLine();
double d;
if (!Double.TryParse(input, out d))
    Console.WriteLine("Wrong input");
double r = d * Math.Pi;
Console.WriteLine(r);

La principale raison des différentes entrées/sorties auxquelles vous êtes confronté est que Console.Read() renvoie un code de caractère, pas un nombre que vous avez tapé ! Apprenez à utiliser MSDN .

2voto

philipproplesch Points 1456

Je pense qu'il y a des erreurs de compilation.

  • Writeline doit être WriteLine (majuscule 'L')
  • point virgule manquant en fin de ligne

         double a, b;
        Console.WriteLine("istenen sayıyı sonuna .00 koyarak yaz");
        a = double.Parse(Console.ReadLine());
        b = a * Math.PI; // Missing colon!
        Console.WriteLine("Sonuç " + b);
    

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X