PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] Dateistream nicht vollständig lesbar


D4ve
2007-12-29, 02:19:39
Ein kurioses (vielleicht auch total banales) Problem an dem ich grade sitze:
Ich versuche Daten aus einer Datei auszulesen, insgesamt sind es 289 Zeichen, beim 47. ist aber bereits Schluss.
Ich begreifs einfach nicht, habs auch mit reinem C-Code probiert, nach EOF abgefragt, keine Chance. Im Prinzip lagern da Zahlen als String, die ich im Programm ganz gern wieder als Zahlen hätte.
Eigentlich ist das ganze in einem größeren Projekt drin, habs hier mal fix in die Main kopiert, ist aber identisch.

#include <iostream>
#include <fstream>
using namespace std;

int main ()
{
std::ifstream filestr;
std::string test;

filestr.open ("store.txt");
if(filestr.is_open())
{
while(filestr.good())
test.push_back(filestr.get());
}
filestr.close();

for(unsigned int i=0;i<test.size(); i++)
cout << i << ": " << test[i] << "\n";

return 0;
}

Die Datei gibts hier:LINK (http://mitglied.lycos.de/curaterr/Store.txt) (bei IE-Benutzern wird sie im Browser geöffnet...blöd, mit Firefox geht sie zu ziehen.

Vielleicht hat ja jemand mehr Erfolg als ich, ich wäre für jede Idee dankbar!

Danke schonmal!

Trap
2007-12-29, 12:04:03
Binärdateien muss man im Binärmodus öffnen.

TheGamer
2007-12-29, 14:38:45
Ein kurioses (vielleicht auch total banales) Problem an dem ich grade sitze:
Ich versuche Daten aus einer Datei auszulesen, insgesamt sind es 289 Zeichen, beim 47. ist aber bereits Schluss.
Ich begreifs einfach nicht, habs auch mit reinem C-Code probiert, nach EOF abgefragt, keine Chance. Im Prinzip lagern da Zahlen als String, die ich im Programm ganz gern wieder als Zahlen hätte.
Eigentlich ist das ganze in einem größeren Projekt drin, habs hier mal fix in die Main kopiert, ist aber identisch.

#include <iostream>
#include <fstream>
using namespace std;

int main ()
{
std::ifstream filestr;
std::string test;

filestr.open ("store.txt");
if(filestr.is_open())
{
while(filestr.good())
test.push_back(filestr.get());
}
filestr.close();

for(unsigned int i=0;i<test.size(); i++)
cout << i << ": " << test[i] << "\n";

return 0;
}Die Datei gibts hier:LINK (http://mitglied.lycos.de/curaterr/Store.txt) (bei IE-Benutzern wird sie im Browser geöffnet...blöd, mit Firefox geht sie zu ziehen.

Vielleicht hat ja jemand mehr Erfolg als ich, ich wäre für jede Idee dankbar!

Danke schonmal!

Nach dem 47. kommt auch ein 0x0D, 0x0A (CR und LF)

Tja und wenn man das ganze nicht Binaer oeffnet gehts eben nur maximal bis zum ersten \n

Probier mal mit filestr.open ("store.txt", ifstream::binary);

D4ve
2008-01-03, 15:53:48
Ein kurioses (vielleicht auch total banales) Problem an dem ich grade sitze:


Es ist doch immer wieder das Selbe... manchmal coded man hunderte Zeilen ohne irgendwelche Probleme und dann sitzt man ewig an so einer Kleinigkeit...
Vielen Dank für die Tipps :)