Boost logo

Boost :

Subject: Re: [boost] Concatenating int value to string ..??
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2013-11-02 05:09:29


On Saturday 02 November 2013 14:14:18 Rahul Mathur wrote:
> All,
>
> I wish to have string (combination of string value and int value) which
> increments until 100. The code is as below -
>
> ---
> #include <iostream>
> #include <cstdlib>
> #include <string>
> #include <boost/lexical_cast.hpp>
>
> using namespace std;
>
> int main() {
> std::string TID = "Apple";
> int TagID = 01, Value = 000 /* 100 IDs*/;
> std::string TagName, TagInitial, TagUId;
> TagName = TID + boost::lexical_cast<std::string>(TagID); // Should
> be as -> Apple01
> TagInitial = TagName + boost::lexical_cast<std::string>(Value); //
> Should be as -> Apple01000
> int i = boost::lexical_cast<int>(TagInitial) + 1; // Should be as
> -> Apple01001
> TagUId = boost::lexical_cast<std::string>(i);
> std::cout << "Tag ID .." << TagUId << endl;
> }
>
> I get below error message -
>
> --
> terminate called after throwing an instance of
> 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_inj
> ector<boost::bad_lexical_cast>
> >'
>
> what(): bad lexical cast: source type value could not be interpreted as
> target
> Aborted (core dumped)
> --
>
> Any clue?

Apple01000 cannot be interpreted as an integer, that's why
boost::lexical_cast<int>(TagInitial) throws.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk