Как легко получить ввод от пользователя в консоли или файл в C #?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пользователь C ++ и сейчас пытаюсь использовать c #.

В c ++ получение информации от пользователя было забавным (просто > >) и поддерживало все типы. Так было и с файлами. Но в C # это слишком сложно, так как я могу взять только строки. Тогда я должен манипулировать им для дальнейшего использования.

И если я хочу взять несколько входов в одной строке, разделенных пробелами, это усложняется, поскольку мне нужно разбивать строки. Тогда преобразование ...

Может быть, это для обработки ошибок и безопасного кода. Но я все равно разочарован в C #.

Вы все опытные ребята здесь. Есть ли простой способ?

Это было полезно?

Решение

Насколько я знаю, вы должны сделать это трудным путем. (С другой стороны, сложный путь проще, чем в C ++;))

Console.OpenStandardInput () дает вам входной поток, поэтому его можно обрабатывать так же, как файлы, но вам придется разбивать строку самостоятельно, если вам это нужно. Конечно, в C # есть хорошая библиотека Regex, которая может здесь помочь.

T.TryParse (где T - это int, float, какой бы тип вы не хотели читать) должен позволять вам преобразовывать строку в эти типы.

Другие советы

В конце концов, это не займет много времени, чтобы обернуть его - вам просто нужно буферизовать текущую строку и прочитать входные данные в желаемом формате. Но IMO, немного расколотый / TryParse и т. Д. Редко причиняет боль.

Я не уверен на 100% в ожидаемых форматах, которые принимает >>, но я сомневаюсь, что было бы сложно сделать что-то подобное. Я не собираюсь это писать ;-p

Как уже ответили, C # не поддерживает это. Нет перегрузки & Lt; & Lt; или > > для потоков вообще, и пока существует TextWriter.WriteLine (" ", ...), нет соответствующего TextReader.ReadLine () со списком переменных параметров.

Я сделаю предположение на Почему : формат данных, пропущенных через пробелы, который понимает dat cin, просто больше не используется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top