Gå til innhold

Sliter med en strengtabell (String array)


Anbefalte innlegg

Skjønner ikke helt hvorfor ikke dette fungerer, så håper på litt hjelp her...

 

har definert en strengtabell "std::stringstream SqlResult[1000];" som jeg prøver å lagre resultatet fra en Sql database i.

 

static int ReadFromDB(void *NotUsed, int argc, char **argv, char **azColName){
 int i;
 for(i=0; i<argc; i++){
  SqlResult[i].str(argv[i]);
  // printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
 }
 printf("\n");
 return 0;
}

 

Her er argc hvor mye informasjon som finnes, og argv er verdien. resten er ikke så viktig...

 

Nå, hvis argc = 1, så vil informasjonen til argv[1] lagres i SqlResult[1] ikke sant? Men problemet er at hvis jeg senere skal hente resultatet fra SqlResult[1] så finnes det ingenting der... Men i SqlResult[0] finner jeg den siste verdien som ble lagret i SqlResult...

 

Så hva er det jeg gjør galt her? :S

Endret av Skinney
Lenke til kommentar
Videoannonse
Annonse

absolutt ingenting... Det er rart. Hvis jeg ber programmet å skrive innholdet av SqlResult[x] rett etter at verdien er lagret så fungerer det fint. Men hvis en annen funksjon prøver å lese innholdet så finner den kun den sist lagrede verdien i SqlResult[0]... (er en global stringstream)...

Lenke til kommentar

Hm, er det en spesiell grunn for at du bruker std::stringstream og ikke std::string? Stringstreams brukes for å konvertere enkelt mellom f.eks tall og stringer. F.eks stringstream ss; ss << "lala " << 3; string s = ss.str(); // nå er er s = "lala 3"

 

Men dette funker hvertfall her:

#include <sstream>
#include <iostream>

using namespace std;

int main() {
 stringstream ss[3];
 for (int i = 0; i < 3; i++) {
stringstream s;
s << "test" << i;
ss[i].str(s.str());
 }
 for(int i = 0; i < 3; i++) {
cout << ss[i].str() << endl;
 }
}

 

$ g++ t.cpp && ./a.out
test0
test1
test2
$

Endret av teflonpanne
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...