0
votes

Comment puis-je insérer un "tableau" de chaînes dans une valeur?

Je veux simplement entrer les numéros suivants

        int numberOfElements = Convert.ToInt32(Console.ReadLine());   
        int sum = 0;
        string input = Console.ReadLine();     
        var numbers = Array.ConvertAll(input.Split(' '), int.Parse).ToList();   


        Console.ReadKey();

c#

4 commentaires

À quel console.readline () saisissez-vous cette valeur?


Ah oui, désolé - entrée


La première entrée (chaîne) "100 8" n'est pas un nombre, évidemment. (Notez l'espace blanche entre les 0 et les 8) Ainsi, votre première ligne de code int numérumements = convert.toint32 (console.readline ()); échouera déjà.


Si vous ne voyez pas l'exception, je suppose que vous utilisez un essayer - clause avec un bloc vide bloc. Si c'est bien le cas, alors ne faites pas cela. Un try-catch avec un bloc de capture vide serait équivalent à cela ici: YouTube.com/watch? v = pdfl__nlopa . (Cela dit, je suis simplement spéculant ici sur ce que vous faites dans votre code ...)


3 Réponses :


1
votes

Évidemment lorsque vous collez dans les retours de chariot, readline code> ne prend que le premier retour de chariot, vous aurez besoin d'une boucle de certaines description

int numberOfElements = Convert.ToInt32(Console.ReadLine());

var sb = new StringBuilder();

for (int i = 0; i < numberOfElements; i++)
{
   Console.WriteLine($"Enter value {i+1}");
   sb.AppendLine(Console.ReadLine());
}

var input = sb.ToString();

// do what ever you want here

Console.ReadKey();


0 commentaires

1
votes

console.readline () ne lit qu'une ligne. Entrée de chaîne = console.readline () lit première ligne lorsque vous entrez dans une nouvelle ligne. Dans votre cas, la première ligne est lue alors pour la deuxième ligne que votre programme ne reçoit que le premier caractère et les sorties.

Vérifiez ceci: xxx

Fiddle de travail


0 commentaires

0
votes

Je suppose que vous recherchez un moyen de permettre à un utilisateur de coller quelque chose d'une autre source dans votre programme de console, vous recherchez donc une réponse où vous pouvez traiter une entrée de chaîne multiligne de la utilisateur (où ils collectent une chaîne contenant un ou plusieurs caractères de nouvelle ligne).

Si tel est le cas, alors un moyen de faire cela serait de vérifier la valeur de console. / code> après le premier appel à readline code> pour voir s'il y a encore plus d'entrées dans le tampon, et s'il y en a, ajoutez-le à l'entrée que vous avez déjà capturée. p>

Par exemple, voici un méthode qui prend une invite (à afficher à l'utilisateur), puis renvoie une liste code> qui contient une entrée pour chaque ligne collée (ou dactylographiée): p>

Console.WriteLine($"\n{string.Join(" + ", numbers)} = {numbers.Sum()}");


0 commentaires