[C++]Int en double in een string

Pagina: 1
Acties:

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 02-07 08:23
Ik heb een string test. Hierin moet een stukje tekst en een integer en een double inkomen, maar ik krijg dit niet voor elkaar.
code:
1
2
3
4
 string test="Barcode: "+code2;

 string test2=" prijs: "+prijs2;
 string test3=test+test2;

Als code2 2 is zal test 'rcode: ' worden. Indien code2 1 is 'arcode: '.

Functies als toString werken niet. Niet dat ik weet hoe dat werkt.

if broken it is, fix it you should


  • whoami
  • Registratie: December 2000
  • Laatst online: 08-07 15:38
Als je Borland C++ Builder gebruikt, moet je eens naar IntToString() kijken.

https://fgheysels.github.io/


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
string test = "Barcode " + integerVariabele + " wat tussen tekst " + doubleVariabele; Hmmz dat is ook Java dus :P

toString methods zijn van Java, maar die werken niet op primitives, allen op Objects

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08-07 13:14

Janoz

Moderator Devschuur®

!litemod

Wat er nu gebeurt is dat in test een pointer naar het eerste karakter van Barcode opleverd. Vervolgens tel je bij die pointer een getal op. Het is dus niet vreemd dat de pointer vervolgens niet naar het eerste, maar naar het 2e of 3e teken wijst. Je moet die integer niet er bij op tellen, maar concateneren.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 02-07 08:23
Op donderdag 06 juni 2002 11:27 schreef Janoz het volgende:
Wat er nu gebeurt is dat in test een pointer naar het eerste karakter van Barcode opleverd. Vervolgens tel je bij die pointer een getal op. Het is dus niet vreemd dat de pointer vervolgens niet naar het eerste, maar naar het 2e of 3e teken wijst. Je moet die integer niet er bij op tellen, maar concateneren.
en hoe doe je dat?

if broken it is, fix it you should


  • Quorton
  • Registratie: Januari 2001
  • Laatst online: 31-05 14:12
sprintf(test, "%s: %d %.2f", "barcode", code, prijs);

simpel toch ?

Quadcore 6600 @ 3,3Ghz, 4 GB, 2 TB raid 5, GF 8400GS
P4 2.8G, 2 GB, 500GB diskspace, GF FX5200


  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Op donderdag 06 juni 2002 11:54 schreef Quorton het volgende:
sprintf(test, "%s: %d %.2f", "barcode", code, prijs);

simpel toch ?
pakt sprintf ook stl string objecten? Volgens mij namelijk niet, alleen maar een char pointer. Maargoed, kan je het alsnog met een extra buffer doen:
code:
1
2
3
char Buffer[100];
sprintf( Buffer, "%s: %d %.2f", "Barcode", code, prijs);
string test = Buffer;

Als het perse in een string object moet..

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 12-06 11:45
code:
1
2
3
4
5
6
7
std::stringstream oss
oss << std::string("text")
    << int(1)
    << float(2.5)
    << std::endl;

std::cout << oss.str();

PS. types zijn nu expliciet maar dat hoeft dus niet

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

MSalters:
code:
1
2
3
4
5
6
7
std::stringstream oss
oss << std::string("text")
    << int(1)
    << float(2.5)
    << std::endl;

std::cout << oss.str();

PS. types zijn nu expliciet maar dat hoeft dus niet
En toch is C++ een mooi taaltje O+

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Op donderdag 06 juni 2002 12:30 schreef MSalters het volgende:
code:
1
2
3
4
5
6
7
std::stringstream oss
oss << std::string("text")
    << int(1)
    << float(2.5)
    << std::endl;

std::cout << oss.str();

PS. types zijn nu expliciet maar dat hoeft dus niet
De
code:
1
std::endl

zou ik niet doen. Waarom een newline in deze stringstream plaatsen? (een einde string ofzo is ook niet nodig; gaat automatisch, wat nou juist de grap van stringstreams is).

Vergeet ook niet #include <sstream>.

[edit] Zonder endl; in de stringstream, moet er natuurlijk wel een als je naar stdout gaat printen, dus
code:
1
std::cout << oss.str();

wordt
code:
1
std::cout << oss.str() << endl;
Pagina: 1