Как легко получить ввод от пользователя в консоли или файл в C #? - PullRequest
1 голос
/ 03 мая 2009

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 03 мая 2009

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

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

1 голос
/ 03 мая 2009

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

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

0 голосов
/ 03 мая 2009

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

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

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

...