Comment prendre l'entrée de l'utilisateur dans la console ou le fichier avec facilité en c #?

StackOverflow https://stackoverflow.com/questions/816726

  •  03-07-2019
  •  | 
  •  

Question

Je suis un utilisateur de C ++ et j'essaie maintenant d'utiliser c #.

En c ++, prendre l’entrée de l’utilisateur était amusante (juste > >) et supportait tous les types. C'était donc pour les fichiers. Mais c # est trop complexe, je ne peux prendre que des chaînes. Ensuite, je dois le manipuler pour une utilisation ultérieure.

Et si je veux prendre plusieurs entrées sur une même ligne, séparées par des espaces, cela devient plus complexe car je dois utiliser le fractionnement de chaîne. Puis la conversion ...

Peut-être que ce soit pour la gestion des erreurs et le code sécurisé. Mais je suis déçu de toute façon par C #.

Vous êtes tous des experts ici. Y a-t-il un moyen facile?

Était-ce utile?

La solution

Autant que je sache, vous devez le faire à la dure. (Sur le bon côté cependant, le dur moyen est plus simple que ce ne serait en C ++;))

Console.OpenStandardInput () vous donne le flux d'entrée, donc il peut être traité de la même façon que les fichiers, mais vous devrez scinder la chaîne vous-même si vous en avez besoin. Bien sûr, C # a une belle bibliothèque Regex qui peut aider ici.

T.TryParse (où T est int, float, quel que soit le type que vous voulez lire) devrait vous permettre de convertir la chaîne en ces types.

Autres conseils

En fin de compte, cela ne prendrait pas grand-chose - vous devez simplement mettre en mémoire tampon la ligne actuelle et lire les entrées au format souhaité. Mais IMO, un peu de split / TryParse, etc. fait rarement mal.

Je ne suis pas sûr à 100% des formats attendus acceptés par >>, mais je doute qu'il soit difficile de faire quelque chose de similaire. Je ne me propose pas de l'écrire, cependant ;-p

Comme déjà répondu, C # ne supporte pas cela. Pas de surcharge de & Lt; & Lt; ou > > pour les flux du tout et s'il existe un TextWriter.WriteLine (& "; &"; ...), il n'y a pas de TextReader.ReadLine () correspondant avec une liste de paramètres variables.

Je vais essayer de deviner Pourquoi : le format de données séparé par espace que dat cin comprend, tout simplement, n’est plus très utilisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top