• 0

[C++] Number to String


Question

I've tried several methods and now I've gotten all confused :wacko: .

So I have a number inside a string. Let's take, for example, "200." Now, I want to convert the string into a long and divide it by 2 then store it back inside a string. I tried using ostringstream, but couldn't get it to work correctly.

Does anyone know what to do?

Link to comment
https://www.neowin.net/forum/topic/274948-c-number-to-string/
Share on other sites

11 answers to this question

Recommended Posts

  • 0

So where in that code can it divide by 2? And also, how can I append

  Quote
stringstream s(somestring, stringstream::in | stringstream::out);

into another string? I tried

  Quote
newString += s

newString is a string from string.h.

Edited by Blackout
  • 0

You cannot use any addition operator on a string as it's not a numerical type.

You need to convert newString to a number itself, add s the convert that back to a string.

atoi is a simple function for converting a string to a number.

Here's a link to msdn, you can look it up there. data conversion routines

  • 0
  Lenny said:
You cannot use any addition operator on a string as it's not a numerical type.

You need to convert newString to a number itself, add s the convert that back to a string.

atoi is a simple function for converting a string to a number.

Here's a link to msdn, you can look it up there. data conversion routines

585338566[/snapback]

You can use + on strings, but he's trying to do it with a string and a stringstream. It should be newString += someOtherString;

And as for those types of data conversion, they aren't in the standard, whereas the way I posted uses more standard methods and more probably safer too.

  • 0
  kjordan2001 said:
Hmm, guess I should have read more closely...

Converting it is still the same, just replace int with long and to convert it back after you divide:

stringstream ss;

string str;

ss << somenumber;

ss >> str;

585338552[/snapback]

Well I was trying to append, not copy the stringstream over to the string.

  Lenny said:
You cannot use any addition operator on a string as it's not a numerical type.

You need to convert newString to a number itself, add s the convert that back to a string.

atoi is a simple function for converting a string to a number.

Here's a link to msdn, you can look it up there. data conversion routines

585338566[/snapback]

Is atoi a C++ standard or is it only available in VC++? Because on MSDN it says that it's part of the VC++ runtime libraries...

  • 0
  Blackout said:
Well I was trying to append, not copy the stringstream over to the string.

Is atoi a C++ standard or is it only available in VC++? Because on MSDN it says that it's part of the VC++ runtime libraries...

585338706[/snapback]

I'm not sure I get what you're trying to do, are you trying to divide a number in a string by 2 and store it back into a string and then append it? If so:

long a;

string s = "200";

stringstream ss(s,stringstream::in | stringstream::out);

ss >> a;

a = a/2.0;

stringstream ss2;

ss2 << a;

string str;

ss2 >> str;

atoi isn't part of the C++ standard, although it's included in Linux as well.

  • 0

Here's what I'm trying to do:

1) I have a string called "num." For example, "200." I have another string called "result."

2) I want to take "num" and convert it to a long so I can divide it by 2.

3) So now "num" equals "100." Now I want to take the "num" and APPEND it to "result."

  Quote
ss2 >> str;

Doesn't that code copy the string over rather than append?

My problem with appending "100" is that when I take a number and append it to a string, it converts the number by treating it as an ASCII value.

So basically, the question is: how do I append a number to a string without it being treated as an ASCII value? Because it keeps getting converted to the ASCII character equivalent of the value, but I just want it to append the value.

Edited by Blackout
  • 0

Heh, forgot to append str, here we go again:

string num = "200";

int number;

stringstream num_convert(num,stringstream::in | stringstream::out);

num_convert >> number;

number = number/2;

stringstream string_convert;

string_convert << number;

string str;

string_convert >> str;

string result = "Result is: ";

result += str;

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I'm not sure I would really call that a hidden setting, and it's been around since Windows XP.
    • Main server is my old gaming PC from years ago.  It was an older AMD Phenom based desktop until last year when I "upgraded" it.  It hosts Nextcloud, Minecraft, Jellyfin and my personal website, and serves as a general purpose backup NAS.  It is apparent in this picture though it needs a good dusting. Operating System: Debian GNU/Linux CPU: AMD FX 8370 GPU: AMD Radeon RX 480 8GB (Used for hardware transcoding in Jellyfin) Memory: 16GB Corsair Vengeance DDR3 @ 1,866 MT/s Boot Drive: Western Digital Blue 500GB SATA SSD Mass Storage: 4 12TB Western Digital Gold HDDs.  Am using mdadm software RAID 5, with an encrypted LUKS/ext4 filesystem on the array.  My "off site backup" is 3 external drives in an encrypted software RAID 0 that I keep stored outside the house and bring in once a month to sync with the internal drives. Storage drive layout: mdadm -> LUKS -> ext4 Secondary server is a Raspberry Pi 4B that hosts PiHole and Wireguard via PiVPN.  I largely use the PiHole not just for ad blocking, but for parental controls on the kids.  I'm actually thinking of upgrading this to an x86 mini PC so I can get secure boot, SMART monitoring of the boot drive, etc. Router is a GL-iNet Flint 2 UPS is an APC Back-UPS XS 1500G.  I've had it for ages and had to replace the battery a few times.  The main server monitors it since our power is pretty unreliable (see screenshot) here in eastern Kentucky.  On the occasion the batteries run down the main server will automatically log into the Pi and do a graceful shutdown on it as part of its power down procedure.
    • This hidden Windows 11 setting makes the system feel a lot faster by Taras Buria As a fan of fancy visuals and a good-looking UI, I upgraded to Windows 11 right after its launch. And while some of my colleagues have a hard time finding legitimate reasons to move to Windows 11, I never looked back. Still, credit where it is due: Windows 10 is still more responsive than Windows 11 (not as Windows 8 was, though). Even when running on a virtual machine, Windows 10 is snappier, and overall, it feels "lighter" than its successor. Animations in Windows 11 feel heavy and a bit wonky even on my pretty capable PC with a Radeon RX 7800 XT and a 144Hz display. While coming back to Windows 10 is not an option, I found a simple solution that not everyone is aware of. My tip of the weekend for Windows 11 users: turn off all animations (genius, I know). As soon as I turned off animations, everything became much snappier: the start menu, virtual desktop switching, context menus (not much faster, but still noticeable), Task View, and other user interface elements. The most notable improvement was virtual desktop switching: instant and without the taskbar going haywire. There are two ways to turn off animation effects in Windows 11. One is in Settings > Accessibility > Visual Effects. Toggle off "Animation effects." The second option is in the legacy "System Properties" applet. Press Win + R, type sysdm.cpl and go to the Advanced tab. Click "Settings" in the Performance section and untick the following options: Animate controls and elements inside windows Animate windows when minimizing and maximizing Animations in the taskbar Of course, you can leave some of those options enabled if you wish. Toggling all three will also turn off the "Animation effects" in the Accessibility settings section. Note that these settings affect not only the general Windows 11 UI but also animations in various apps, which, in turn, can make them feel snappier. I should also add that this simple tweak will not make your computer run faster or generate more FPS in games. It will only address janky animations, which, unfortunately, are still present in Windows 11. While my PC runs perfectly and without performance issues, slow animations play a big role in how it feels. And if you ask me, no animations are better than fancy yet choppy animations (I spoke about it in my recent "Windows 11 still grinds my gears with these 5 things" article). I recently published another guide with five important things every Windows 11 user should do. Therefore, if you want to make the OS run a bit better for you, check out that article here as well. Meanwhile, share your thoughts about Windows 11 animations in the comments.
    • Is this for Black people only? You'd definitely think so from the ad.
    • I have it as an icon in the Start Menu. Close enough for when I need it.
  • Recent Achievements

    • First Post
      Johnny Mrkvička earned a badge
      First Post
    • Week One Done
      viraltui earned a badge
      Week One Done
    • One Month Later
      serfegyed earned a badge
      One Month Later
    • Dedicated
      firey earned a badge
      Dedicated
    • Dedicated
      fettermanj earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      658
    2. 2
      ATLien_0
      224
    3. 3
      Michael Scrip
      224
    4. 4
      Xenon
      146
    5. 5
      +FloatingFatMan
      143
  • Tell a friend

    Love Neowin? Tell a friend!