2012-01-23 3 views
2

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

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

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

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

+0

Вы можете сохранить его в виде строки и разобрать его, соответственно – mowwwalker

+0

я думаю, что нам нужно больше контекста. Что вы собираетесь делать со значением, которое вводит пользователь? Вам нужно относиться ко всему равномерно? Можете ли вы просто сделать hardcode в нескольких случаях? – templatetypedef

+0

Введенные данные будут оценены. Либо «A» «A +» и т. Д. (Строки), 12,43% и т. Д. (Двойной) или пять баллов, т. Е. 34 59 98 92 (максимум пять, (массив)). Затем он должен быть помещен в соответствующую функцию. Затем просто выплюнуть простой текст. – Robolisk

ответ

5

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

+0

разобрать? вы можете объяснить больше, пожалуйста. – Robolisk

+1

Нет, я не могу. Это одно домашнее задание, а не мое, и я боюсь, что я пошлю вас в неправильном направлении для удовлетворения ваших учителей. Получали ли вы образцы данных? Кроме того, инструкции выглядят в обратном порядке. Поскольку вход в этом случае всегда является строкой, для получения причины перегрузить что-либо потребуются некоторые искусственные колебания. – bmargulies

+0

Это не означает, что мы используем и понимаем концепцию работы перегруженных функций. Поэтому мы должны их использовать. Одна функция, которая может принимать три входа (ну, пожалуй, три функции). И справедливо. Анализ Google - это ха-ха. Я не уверен, что это значит. Спасибо хоть. – Robolisk

0

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

0

вы получаете ввод от консоли командной строки, один из вариантов заключается в том, чтобы заставить пользователей указать, что они вводят. то есть отображать заметку, например, для классов введите «класс» 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

Не может этого сделать. В буквальном смысле это просто вопрос, который можно сказать: «Пожалуйста, введите оценки студентов», и программа должна выяснить, какие данные и какая функция использовать для этого. – Robolisk

+0

вы должны принять эти аргументы и затем установить некоторые условия для определения типа данных -1. проверить количество аргументов, если не> 1, они не могут быть отметками. 2. затем проверьте, можете ли вы преобразовать первый аргумент в double, если да его процент, если нет, тогда они являются оценками. В противном случае получите отметки 5sub и обработайте их. – DotNetUser

+0

Это супер запутанно. Извините. Я не совсем понял, что вы пытались сказать? – Robolisk

Смежные вопросы