-
betr. convertieren von string to long long
betr: string to long long (1)
hi leute
habe aus einer mysql_abfrage (c_api) einen string namens Timestamp (14-stellig)
soviel ich weiss ist der long long int.
moechte nun diesen string "20050612122230"
in eine zahl convertieren.
mein c_buch beschaeftigt sich nur mit string to long mittels
char **endp;
mysqlTowerDatas[r].towerTimeStamp = strtoul(row[t],endp,10);
ergebnis:
printf("TimeStamp: %ld\n",mysqlTowerDatas[2].towerTimeStamp);
TimeStamp: 0
koenntet ihr mir da mal helfen??
mfg nomad
-
Wo ist das Problem? Steht in row[t] wirklich der von dir genannte String drin? Vermutlich nicht. Poste doch mal ein komplettes Beispiel, welches den Fehler verdeutlicht, das würde helfen, herauszufinden was nicht läuft.
Achso, du initialisierst doch *sicherlich* "endp", bevor du strtoul aufrufst, oder?!?
-
betr: string to long long (2)
betr: string to long long (2)
hi,
vielen dank fuer deine antwort. also:
1. in row[t] steht string drinn: 24 20050612122230 52 58 135 1.000 0.100 0.100
also: 20050612122230 = timestamp
2. zitat: du initialisierst doch *sicherlich* "endp", bevor du strtoul aufrufst, oder?!?
== leider nein. hab's gemaess einem c-buch versucht
gem.buch aufruf: long strtoul(const char *s. char **endp, int base)
beispiel aus buch:
char *buf = "2.0e10";
while (*buf)
{
printf("%ld\n"",strtoul(buf,&buf,0); ergebnis: 20000000000
}
zuweisung waere doch dann &buf = char **endp oder ??
mein codeschnipsel muesste dann so aussehen:
== mysqlTowerDatas[r].towerTimeStamp = strtoul(row[t],&row[t],10);
hab unterdessen -mysqlTowerDatas[r].towerTimeStamp- von long long auf char *....... gesetzt.
es wuerde mich aber sehr interessieren wie man aus den string eine zahl konvertiert.
waere um eine antwort sehr froh
mfg nomad
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen