Re: integer in ostringstream
On May 23, 11:28 am, Chris Morgan <christopher.j.mor...@gmail.com>
wrote:
On May 22, 4:59 pm, cerr <ron.egg...@gmail.com> wrote:
Hi There,
I have to include an integer in a string and thought if i went the
ostringstream way, I would be safe with type conversion.
My code looks like this:
std::ostringstream sslLine;
sslLine << "PRIORITY_REQUEST(" << gpsDataObj->
getVehicleID() << "," << curApproach->
getSeqNr() << "," << curApproach->
getDirection() << "," << curApproach->
getETA() << "," << gpsDataObj->
getPriorityNeed() << ")";
And the problem i'm having is that the value returned by gpsDataObj->getPriorityNeed() is an int type that's in this case 1 or 0 and
sometimes )(not been able to define when exactly) the number shows up
as "-2147483648" in the string and I'm not quite sure why... If I made
a "static_cast<unsigned int>(gpsDataObj->getPriorityNeed())" - do you
think it would be any better, I'm not sure. How do I tell
ostringstream explicitly to interpret this value as an int? Or does
anyone have a clue what else may go wrong here?
Thanks,
Ron
Without the code for the getPriorityNeed() member function, it's tough
to figure out what your issue is. Since -2147483648 is suspiciously
the minimum value for a 32-bit signed integer, I would imagine that
there is some code path in getPriorityNeed() that is returning an
uninitialized value.
Hi Chris,
Thanks for your reply!
getPriorityNeed() looks is just a simple method to read an integer in
a thread safe manner:
int GPSData::getPriorityNeed()
{
int value;
novax_thread_lock(&priorityNeed_mtx);
//calculate priority with data from config file and deviation from
INIT!
value = GPSData::priorityNeed;
novax_thread_unlock(&priorityNeed_mtx);
return value;
}
GPSData::priorityNeed gets set by
void GPSData::setPriorityNeed(int value)
{
novax_thread_lock(&priorityNeed_mtx);
GPSData::priorityNeed = value;
novax_thread_unlock(&priorityNeed_mtx);
}
which gets called regularly from a thread.
The object GPSData::priorityNeed is declared as a private integer.
So why would getPriorityNeed return a correct value most of the times
but every now and then it seems to mess it up... Not very often tho
and as said, I can't really figure out any regularity... :o
Thanks for help!
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]