Какую переменную использовать, когда я не уверен, какой будет ввод? - PullRequest
2 голосов
/ 23 января 2012

Я должен использовать «функции перегрузки» для этого назначения.Я понимаю концепцию и то, как они работают, но я не понимаю, как я могу получить ввод от пользователя, тогда, если я не знаю, что это будет?

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

Моя проблема в том, что когда я заставляю пользователя вводить данные, где мне их хранить, когда я не знаю, что это будет?Я имею в виду, что, сохранив его, я могу сравнить и выяснить, какой тип данных у меня есть представление, как это сделать.

Кто-нибудь знает?

Ответы [ 3 ]

5 голосов
/ 23 января 2012

Когда вы получите ввод от пользователя, это будет строка. Период. Затем вы должны разобрать его, чтобы увидеть, что это такое. Пока вы пишете парсер, вы можете найти применение перегруженным функциям.

0 голосов
/ 23 января 2012

вы получаете ввод из консоли командной строки. Один из вариантов сделать это чисто - заставить пользователей принудительно сообщать, что они вводят. то есть отображать примечание, например, для оценок введите «оценка» A + или что-то еще, «процент» 123, «помечает» пять подпунктов. Таким образом, вы можете проверить первый аргумент для вызова перегруженной функции и использовать следующие аргументы в качестве значений. Сделайте некоторую проверку, чтобы убедиться, что после «оценки» они не вводят процент или оценки. Не уверен, что это ваше задание является гибким, но для пользователей это проще.

Для преобразования из строки в любой другой тип вы можете использовать функцию шаблона, как показано ниже

    template <class outputType>
    outputType ClassName::strOutputType(std::string val)  // converts string to other using string stream
    {
       outputType ot;
       std::istringstream out(val);
       out>> ot;
       return ot;
    }
0 голосов
/ 23 января 2012

Ну, строка может содержать числа внутри себя, так что давай с этим.Вы можете проверить наличие цифр и десятичных знаков, чтобы увидеть, является ли это число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...