Textdatei auslesen, Typkonvertierung

smallone

Mitglied
Hallo zusammen,

ich komme einfach nicht weiter, auch nach Lektüre alter Foren-Beiträge.

Mein Problem:

ich habe eine Textdatei mit folgendem, zeilenweise sich wiederholenden Format:

"einstellige Zahl (0 oder 1)" ; "mehrstellige Zahl"

also z.B.
0;12345
1;6789101112
...
...


Code:
die Zeilen kann ich auslesen mit:

ifstram infile:
infile.open(filename, ifstream::in);

string Zeile;

while (getline(infile, Zeile))
{
bool VorSemikolon = (Zeile[0]-48);
long NachSemikolon = ?

}


Bei dem Fragezeichen hakt es bei mir - wie bekomme ich die Typkonvertierung von char bzw. aus dem String in ein long int

Danke für eure HIlfe !

Gruß BEN
 
moin


Du muss das was nach dem Semikolen steht in einen eigenen String kriegen, und das dann mit atol(string) in ein long umwandeln.


mfg
umbrasaxum
 
Hallo,

danke schonmal für die Antwort.

Genau beim kopieren des Strings habe ich Probleme.

ich habe probiert:

Code:
int position = memchr()

das geht aber scheinbar nur bei char, und nicht mit einem String.
gibts alternativ eine Funktion zu getline(), die eine Zeile aus einer Textdatei in ein char-Array einlesen kann ?
 
oh man, ein Blick in ein gutes Buch, und das Problem war erledigt:

char AbSemikolon[15];
strcpy (AbSemikolon, &Zeile[2]); // kopiert ab dem dritten Zeichen in den char .

long Wert_ab_Semikolon = atol(AbSemikolon);


Danke, Gruß B.
 
smallone hat gesagt.:
oh man, ein Blick in ein gutes Buch, und das Problem war erledigt:

char AbSemikolon[15];
strcpy (AbSemikolon, &Zeile[2]); // kopiert ab dem dritten Zeichen in den char .

long Wert_ab_Semikolon = atol(AbSemikolon);


Danke, Gruß B.

Wieso machst du es nicht gleich so:?

Code:
long Wert_ab_Semikolon  = atol(&Zeile[2]);

Gruß

RedWIng
 
Zurück