RE: [c++] string to int
Weshalb musst du das überhaupt umwandeln? Eine Zahl als string zu speichern ist eine denkbar schlechte Lösung.
Daher die frage: muss das wirklich sein?
Oder lässte es sich vermeiden die zahl als String zu speichern?
mfg Gimli
Daher die frage: muss das wirklich sein?
Oder lässte es sich vermeiden die zahl als String zu speichern?
mfg Gimli
"Linux is evolution, not intelligent design." - Linus Torvalds
ja das hat mir den denkanstoß gegeben.
ich programmiere gerade einen leveleditor für mein spiel...
die koordinaten für objekte werden aus eine externen datei zeilenweise eingelesen, jede zeile in ein "char bla[x]"
diesen habe ich dann in einen string geschrieben und woltte ihn dann wieder in ein int verwandeln hehe
wahrlich dumm
meine erste lösung ist
int x = (int)bla[x];
so sollte der char also die zahl die in ihm steht doch korrekt übergeben werden oder?
ich programmiere gerade einen leveleditor für mein spiel...
die koordinaten für objekte werden aus eine externen datei zeilenweise eingelesen, jede zeile in ein "char bla[x]"
diesen habe ich dann in einen string geschrieben und woltte ihn dann wieder in ein int verwandeln hehe
wahrlich dumm
meine erste lösung ist
int x = (int)bla[x];
so sollte der char also die zahl die in ihm steht doch korrekt übergeben werden oder?
das mit dem char in ein int array schreiben mache ich jetzt, wird auch nich anders gehen.
problem is nur das wenn ich
int x[bla] = (int)zeile[bla];
wobei x das integer array ist das die zahl aus der char zeile übernehmen soll.
mache erhalte ich sinnlose werte also nicht der in der zeile wirklich steht...
problem is nur das wenn ich
int x[bla] = (int)zeile[bla];
wobei x das integer array ist das die zahl aus der char zeile übernehmen soll.
mache erhalte ich sinnlose werte also nicht der in der zeile wirklich steht...
Du liest eine datei aus:
warum arbeitest du da überhaupt mit char?
kannst du doch direkt als int/decimal auslesen, zb mit:
oder gar zeilenweise (ohne fgets):
100% ungetestet!
mfg Gimli
warum arbeitest du da überhaupt mit char?
kannst du doch direkt als int/decimal auslesen, zb mit:
|
|
Quellcode |
1 |
fscanf("%d", &zahl);
|
oder gar zeilenweise (ohne fgets):
|
|
Quellcode |
1 2 3 |
DATEI = fopen usw...
while((fscanf(DATEI, "%d\n", &zahl)) != EOF )
fprintf(stdout, "%d\n", zahl);
|
100% ungetestet!
mfg Gimli
"Linux is evolution, not intelligent design." - Linus Torvalds
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Gimli« (26. November 2004, 21:27)
naja mein code sieht halt so aus mit dem von dir kann ich noch nich soviel anfangen 
in zeile steht immer die gerade durchlaufene zeile...
diese soll weil sie ja eine zahl ist in objekt gespeichert werden...
nunja...
vielleicht ist die sache auch kompletter schwachsinn...
die oben genannte funktion nimmt leider als "zeile" nunmal nichts an ausser ein char. deswegen kompliziert sich das auch momentan alles irgentwie..

|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void drawMap::UserEingabe()
{
ifstream datei("level01.dat");
char zeile[5];
int i = 0;
while(datei.getline(zeile, 5))
{
drawMap::objekt[i] = (int)zeile;
i++;
drawMap::anzahl_objekte++;
}
}
|
in zeile steht immer die gerade durchlaufene zeile...
diese soll weil sie ja eine zahl ist in objekt gespeichert werden...
nunja...
vielleicht ist die sache auch kompletter schwachsinn...
die oben genannte funktion nimmt leider als "zeile" nunmal nichts an ausser ein char. deswegen kompliziert sich das auch momentan alles irgentwie..
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »quibb« (26. November 2004, 21:36)
Mein Code ist C, nicht C++.
Najo, wenns mir der momentanen Funktionnicht geht musst du halt evtl ne bessere suchen
Viel mehr werde ich dir nicht mehr helfen können.
Weil von C++ habe ich 0 Ahnung und bei C fehlt mir derzeit die zeit mich intensiv damit zu beschäftigen, bzw weiterzulernen.
mfg Gimli
Najo, wenns mir der momentanen Funktionnicht geht musst du halt evtl ne bessere suchen

Viel mehr werde ich dir nicht mehr helfen können.
Weil von C++ habe ich 0 Ahnung und bei C fehlt mir derzeit die zeit mich intensiv damit zu beschäftigen, bzw weiterzulernen.
mfg Gimli
"Linux is evolution, not intelligent design." - Linus Torvalds
also ich bin jetzt definitiv zu faul mir alle beiträge durchzulesen.
ich sag dir einfach mal, dass es die funktion
atoi() <- ascii to int
gibt mit deren hilfe du das machen kannst.
jperl
ich sag dir einfach mal, dass es die funktion
atoi() <- ascii to int
gibt mit deren hilfe du das machen kannst.
jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.



16 stunden am stueck programmieren is auch mal genug.