проверка входного потока без знака
m написание части программы, которая анализирует и проверяет некоторые пользовательские данные в аргументах программной консоли. Я решил использовать stringstream для этой цели, но столкнулся с проблемой чтения неподписанных типов.
Следующий шаблон предназначен для чтения запрошенного типа из заданной строки:
#include
#include
#include
using std::string;
using std::stringstream;
using std::cout;
using std::endl;
template
ValueType read_value(string s)
{
stringstream ss(s);
ValueType res;
ss >> res;
if (ss.fail() or not ss.eof())
throw string("Bad argument: ") + s;
return res;
}
// +template specializations for strings, etc.
int main(void)
{
cout < read_value