Форум программистов, компьютерный форум CyberForum.ru

Обобщенная функция перевода строки в число - C++

Восстановить пароль Регистрация
 
tumanovalex
3 / 3 / 0
Регистрация: 09.07.2009
Сообщений: 206
14.08.2014, 21:30     Обобщенная функция перевода строки в число #1
В книге "С++. Сборник рецептов" нашел обобщенную функцию преобразования строки в число:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <sstream>
#include <conio.h>
 
using namespace std;
 
template<typename T>
T strNum(const string& str)
{
  stringstream ss(str);
  T tmp;
  ss >> tmp;
  if (ss.fail())
  {
    string s = "Can`t format  " + str + " in number!";
    cout << s << endl; 
  }
  return tmp;
}
 
int main(int argc, char** argv) 
{
  double d = strNum<double>("300e-5");
  cout << d << endl;
  float f = strNum<float>("345.234");
  cout << f << endl;
  int i = strNum<int>("345.05");
  cout << i << endl;
  int err= strNum<int>("asdf");
  _getch();
  return(EXIT_SUCCESS);
}
Далее в тексте книги говорится, что параметром шаблона можно сделать тип символов. Подскажите, пожалуйста, что автор книги имеет ввиду, что-то я не понял. Проект прикрепляю.
Вложения
Тип файла: zip CppSolution.zip (2.3 Кб, 2 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6458 / 3832 / 885
Регистрация: 30.01.2014
Сообщений: 6,627
14.08.2014, 21:46     Обобщенная функция перевода строки в число #2
Цитата Сообщение от tumanovalex Посмотреть сообщение
Далее в тексте книги говорится, что параметром шаблона можно сделать тип символов. Подскажите, пожалуйста, что автор книги имеет ввиду, что-то я не понял.
Наверное вот это
C++
1
2
3
4
5
6
7
8
9
10
11
12
template<typename T, typename CharT>
T strNum(const std::basic_string<CharT>& str)
{
    std::basic_stringstream<CharT> ss(str);
    T tmp;
    ss >> tmp;
    if (ss.fail())
    {
        std::cout << "Can`t format number!" << std::endl;
    }
    return tmp;
}
tumanovalex
3 / 3 / 0
Регистрация: 09.07.2009
Сообщений: 206
14.08.2014, 22:45  [ТС]     Обобщенная функция перевода строки в число #3
Спасибо! Как я понял, теперь можно использовать char и wchar. Правильно?
DrOffset
6458 / 3832 / 885
Регистрация: 30.01.2014
Сообщений: 6,627
14.08.2014, 22:55     Обобщенная функция перевода строки в число #4
Цитата Сообщение от tumanovalex Посмотреть сообщение
Спасибо! Как я понял, теперь можно использовать char и wchar. Правильно?
Именно.
Yandex
Объявления
14.08.2014, 22:55     Обобщенная функция перевода строки в число
Ответ Создать тему
Опции темы

Текущее время: 09:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru