Problem mit Stringlänge Warnung
-
string bla ="foo"
int length = bla.lengt(); <-- bringt Konvertierung von 'size_t' nach 'int', Datenverlust möglichwie bring ich die Warnung weg?
big thx!
-
Verwende auf beiden "Seiten" den gleichen Type, d.h. deklariere length ebenfalls als size_t. Unter VC6 steckt im übrigen ein unsigned int hinter size_t, laut MSDN.
mfg JJ
-
Hallo,
entweder du verwendest size_t oder direkt string::size_type. Sprich:string bla ="foo"; string::size_type length = bla.length();
-
das haut hin doch taucht dann ein weiteres Problem auf wenn ich z.b.
int i = 0;
if(i < length) vergleichen will -> '<': Konflikt zwischen 'signed' und 'unsigned'hilft da nur dass ich den string in einer Schleife zähle??
-
Downset schrieb:
das haut hin doch taucht dann ein weiteres Problem auf wenn ich z.b.
int i = 0;
if(i < length) vergleichen will -> '<': Konflikt zwischen 'signed' und 'unsigned'Das ist das selbe 'Problem' wie dein erstes Problem. Also überleg mal warum length und i nicht den selben Typ haben.
-
jo das ist mir schon klar dass das so weitergeht mit den Meldungen wollte eigentlich nur sagen dass ich die werte weiter brauche so für vergleiche und so? kann man das irgendwie Casten?
-
Downset schrieb:
kann man das irgendwie Casten?
Sicher kann man casten. Nur warum verwendest du nicht einfach von beginn an die richtigen Typen?