Datei nach char* einlesen
-
Hi, ich möchte mir gerne eine Datei einlesen, dessen größe ich nicht zwangsläufig kenne und diese dann gerne in einem char* zwischenspeichern bzw. den dateiinhalt erstmal programm intern zwischenspeichern.
Ich bekomme die datei geöffnet und auch direkt in der konsole ausgegeben, aber das zwischenspeichern in meiner char* buffer variablen funzt nicht.
was mach ich falsch
#include "stdafx.h" #include <fstream> #include <iostream> int _tmain(int argc, _TCHAR* argv[]) { std::ifstream input; char* buffer = '\0'; input.open("C:\\temp\\s.txt", std::ios::binary); if(!input.is_open()) { std::cout<<"Datei nicht geöffnet"<<std::endl; int a; std::cin>>a; return 1; } while (input.good() && !input.eof()) { buffer = (char*) input.get(); } std::cout<<buffer; input.close(); int b; std::cout<<"Ende"; std::cin>>b; return 0; }
-
Warum char* ??? *kotz*
-
Hallo zusammen,
vlt. hilft dir folgendes Beispiel ein wenig weiter
#include <iostream> #include <fstream> #include <iterator> #include <algorithm> using namespace std; int main() { ifstream is("d.dat"); is.unsetf(ios_base::skipws); // Zeichenanzahl bestimmen is.seekg(0, ios_base::end); int l = is.tellg(); is.seekg(0, ios_base::beg); // Streaminhalt in Array kopieren und ausgeben char *buf = new char[l+1]; copy(istream_iterator<char>(is), istream_iterator<char>(), buf); cout << buf; }Grüße
Martin