Как легко получить ввод от пользователя в консоли или файл в C #?
Вопрос
Я пользователь 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, просто больше не используется. Р>