Toon posts:

[C++] Probleem met variabelen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb drie verschillende variabelen. Die wil ik samen achter elkaar in een nieuwe variabele zetten.

Hoe doe ik dat met c++?




Jammer dat c = a . b niet werkt (php)

  • Glock
  • Registratie: November 2001
  • Niet online
c = a
c += b

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

In C is het:


sprintf(&var, "%s%s") ?

En wellicht wat manuals/tutorials lezen?

  • Glock
  • Registratie: November 2001
  • Niet online
ACM: sprintf(&var, "%s%s") ?
geloof dat ie 't zo alleen echo'ed :)
Die wil ik samen achter elkaar in een nieuwe variabele zetten.

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 17:29 schreef Glock het volgende:
c = a
c += b
hmmm dat werk niet, hij maakt er een optelling oid van.

Ik heb datum, graden en druk
die moeten allemaal achter elkaar in a. Dus niet optellen.

Ik zoek me al helemaal gek met Google en in een c++ boek van me.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op donderdag 07 februari 2002 17:32 schreef Glock het volgende:
geloof dat ie 't zo alleen echo'ed :)
nee, das printf, zonder s.

zie http://www.cplusplus.com/ref/cstdio/sprintf.html

zo kan het ook trouwens:
code:
1
2
strcpy(c, a);
strcat(c, b);

  • Glock
  • Registratie: November 2001
  • Niet online
jeroenbeekman:
Ik heb datum, graden en druk
die moeten allemaal achter elkaar in a. Dus niet optellen.
Denk dat ik het dan niet helemaal goed begrijp, bedoel je dan dat je verschillende vars in 1 var wil hebben oftewel een array :?

  • Glock
  • Registratie: November 2001
  • Niet online
Op donderdag 07 februari 2002 17:35 schreef marcusk het volgende:
nee, das printf, zonder s.
|:(

Verwijderd

int a=12;
int b=13;
string (of char*) c="";
c+=a;
c+=b;

of je gebruikt een expliciete cast, dat kan ook.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op donderdag 07 februari 2002 17:37 schreef Glock het volgende:
|:(
:?

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 17:37 schreef Glock het volgende:

[..]

Denk dat ik het dan niet helemaal goed begrijp, bedoel je dan dat je verschillende vars in 1 var wil hebben oftewel een array :?
Het moet gewoon een lange code worden, je weet wel datumtempdruk

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 17:38 schreef spl!t het volgende:
int a=12;
int b=13;
string (of char*) c="";
c+=a;
c+=b;

of je gebruikt een expliciete cast, dat kan ook.
Dit is toch optellen? Ze moeten achter elkaar komen, 1213

  • Glock
  • Registratie: November 2001
  • Niet online
Op donderdag 07 februari 2002 17:39 schreef marcusk het volgende:

[..]

:?
ik doelde op mezelf

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 17:42 schreef Glock het volgende:

[..]

ik doelde op mezelf
Ok, maar ff weer on-topic...

Iemand een idee, ik kan 't nergens vinden. Het lijkt me toch sterk dat zoiets niet kan.

  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
wat wil je nou precies? Als je een variable wil die 3 andere variabelen bevat, dat lijkt het mij dat je ff een class moet maken die dat doet?

Only dead fish go with the flow


Verwijderd

Topicstarter
Op donderdag 07 februari 2002 17:48 schreef Toiletman het volgende:
wat wil je nou precies? Als je een variable wil die 3 andere variabelen bevat, dat lijkt het mij dat je ff een class moet maken die dat doet?
Verklaar u nader...

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op donderdag 07 februari 2002 17:42 schreef Glock het volgende:
ik doelde op mezelf
Oh, ok :)
Op donderdag 07 februari 2002 17:51 schreef jeroenbeekman het volgende:
Verklaar u nader...
Jij moet je eigenlijk nader verklaren :) :

Wat zijn de typen van die vars?

Verwijderd

Topicstarter
Goed, ff heel duidelijk dan

Ik heb drie variabelen, datum, temeratuur en druk. Die moeten samen achter elkaar in een variabele a. Als het goed is krijg je in a straks een lange reeks getallen.

Alle typen zijn int.


Correctie; ik bedenk me net, hoe krijg je later die waardes weer van elkaar af? Ik sla het nu op als één lange waarde, maar hoe krijg je dat later weer terug? Je weet immers alleen de lengte van de datum...

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
als a het type char * heeft:

sprintf(a, "%d%d%d", datum, temp, druk);

  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
nah, da's vrij basic... maar ik weet niet precies wat je wil met die 3 variabelen... als je ze alleen maar wil printen dan is spl!t's oplossing geloof ik wel een goede, weet alleen niet offie zo klopt, ik ken de std (c?) string class niet zo goed.
Maar als je meer wil doen dan printen, dan lijkt het me dat je die 3 dingen nog apart wil kunnen aanspreken... dus moet je d'r ff een class voor bouwen... maar ik ben geen programmeur ofzo, dus het kan best dat wat ik zeg nogal onzinnige oplossing is:
code:
1
2
3
4
5
6
struct DatumGradenDruk
{
      int Datum;
      int Graden;
      int Druk;
};

Kweenie of het zo klopt... maar dit ding bestaat dus uit 3 ints... afhankelijk wat je d'r verder mee wil kan je em natuurlijk uitbouwen... maar hierna kan je dus zeggen:
code:
1
2
3
4
DatumGradenDruk object1;
object1.Datum  = 1702;
object1.Graden = 100;
object1.Druk   = 1;

nou heb je hier natuurlijk nog geen reet aan, maar als je dat zou willen outputten dan zou je operator<< voor die class kunnen overloaden.

Only dead fish go with the flow


  • Glock
  • Registratie: November 2001
  • Niet online
Op donderdag 07 februari 2002 17:55 schreef jeroenbeekman het volgende:
Goed, ff heel duidelijk dan

Ik heb drie variabelen, datum, temeratuur en druk. Die moeten samen achter elkaar in een variabele a. Als het goed is krijg je in a straks een lange reeks getallen.

Alle typen zijn int.


Correctie; ik bedenk me net, hoe krijg je later die waardes weer van elkaar af? Ik sla het nu op als één lange waarde, maar hoe krijg je dat later weer terug? Je weet immers alleen de lengte van de datum...
aangezien ik nu hier lees dat je het toch weer uit elkaar wil later, is het dan toch niet makkelijker om een array of dergelijke te gebruiken :?
(tenzij je natuurlijk van plan bent met alle lange getalletjes iets te doen) 8-) :P

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Op donderdag 07 februari 2002 17:55 schreef jeroenbeekman het volgende:
Alle typen zijn int.
waarom niet gewoon in een array dan?

Verwijderd

Topicstarter
Uiteindelijk komt het in een gelinkte lijst. Je weet niet hoeveel getallen het worden. Een Array is dus geen optie. Maar als iemand me uit kan leggen hoe ik meerdere waardes in een lijst krijg...

Ben nl nog niet zo lang bezig met gelinkte lijsten...

  • .GoO
  • Registratie: September 2001
  • Laatst online: 26-08 10:06
Op donderdag 07 februari 2002 17:55 schreef jeroenbeekman het volgende:
Goed, ff heel duidelijk dan

Ik heb drie variabelen, datum, temeratuur en druk. Die moeten samen achter elkaar in een variabele a. Als het goed is krijg je in a straks een lange reeks getallen.

Alle typen zijn int.
Je kan er toch een string van maken zodat het tekst is en ie ze niet bijelkaar optelt??

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
kan leggen hoe ik meerdere waardes in een lijst krijg...
code:
1
lijst->add (waarde);

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 18:04 schreef Tomatrix het volgende:
code:
1
lijst->add (waarde);
Maar nu dus mijn drie waardes. maar wel zodat je later weet dat ze bij elkaar horen...

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
code:
1
2
3
lijst->add (waarde1);
lijst->add (waarde2);
lijst->add (waarde3);

Als je een normale gelinkte lijst gebruikt (dus geen gesorteerde ofzo), wordt er aan de volgorde niets veranderd.

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 18:08 schreef Tomatrix het volgende:
code:
1
2
3
lijst->add (waarde1);
lijst->add (waarde2);
lijst->add (waarde3);

Als je een normale gelinkte lijst gebruikt (dus geen gesorteerde ofzo), wordt er aan de volgorde niets veranderd.
Juist! Daar heb je em, uiteraard gesorteerd...

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
en op welke van de 3 wil je de lijst sorteren?

Verwijderd

Topicstarter
Op alle als het kan. Als gebruiker moet je de gegevens op verschillende manieren kunnen bekijken.

Ik moet nu even weg, maar ik zal er over na denken. iig bedankt voor de reacties...

  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
Wat glock volgens mij met die array bedoelde is om gewoon een array van die 3 intjes te maken... da's nog een makkelijker oplossing dan mijn struct...
en dan kan je die arrays nog altijd in een gelinkte lijst stoppen...
Maar de vraag is dus wat je met die getallen wil gaan doen, en waarom ze achter elkaar moeten in 1 'string'.

Only dead fish go with the flow


  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Op donderdag 07 februari 2002 18:12 schreef jeroenbeekman het volgende:
Op alle als het kan. Als gebruiker moet je de gegevens op verschillende manieren kunnen bekijken.
Dan zou ik gewoon een klasse maken die de drie variabelen encapsulate en 3 verschillende comparators schrijven die de boel sorteert op de juiste waarde.

Even een voorbeeldje in Java daar ik te weinig (zeg maar gerust geen) kennis heb van de C++ libs:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class SomeData {
protected int temp;
protected int pressure;
...

   //constructor
   public SomeData (int temp, int pressure, ...) {
    this.temp = temp;
    this.pressure = pressure;
    ...;
   }
   public int getTemp () {
    return this.temp;
   }
   ...
}

En dan nu een comparator:
code:
1
2
3
4
5
6
7
8
9
10
11
12
public class TempComparator implements Comparator {
   public int compare (Object o1, Object o2) [
    // voor het gemak gaan we er van uit dat beide objecten van het type SomeData zijn
    if (o1.getTemp () < o2.getTemp ()) {
        return -1;
    } else if (o1.getTemp () > o2.getTemp ()) {
        return 1;
    } else {
        return 0;
    }
   }
}

En verder een standaard sorterings algorithme nemen wat als argument de desbetreffende Comparator heeft.

  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
lol, als je de volgende keer je probleem wat beter opschrijft, dan was die oplossing van Tomatrix er gelijk gekomen, en ook in C++... :)
maareh, dit is verder enorm basic spul, dus het lijkt me dat je dat verder wel zelf afkan.

Only dead fish go with the flow


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Om in C++ strings te gaan manipuleren moet je gebruik maken van std::ostringstream, deze staat gedeclareerd in de header <ostringstream>

Wanneer je een ostringstream aanmaakt kan je deze op dezelfde manier gebruiken als de bekende cout. Je kan dus integers, strings of objecten aan elkaar plakken in 1 string (op voorwaarde dat die objecten het ondersteunen natuurlijk).

Voorbeeld
code:
1
2
3
4
5
6
7
8
9
#include <string>
#include <ostringstream>

std::string voegSamen(int a, int b)
{
   std::ostringstream woord;
   woord << a << b;
   return woord.str();
}

En dit is geloof ik wat je bedoelt :)

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Op donderdag 07 februari 2002 19:48 schreef Orphix het volgende:

En dit is geloof ik wat je bedoelt :)
Hij bedoelt dit in eerste instantie wel, maar hij wil wat anders...
Pagina: 1