[C++] Co znajduje się w zmiennej, do której odczytano plik?
Ostatnio zmodyfikowano 2013-06-02 18:55
Pawel9218 Temat założony przez niniejszego użytkownika |
[C++] Co znajduje się w zmiennej, do której odczytano plik? » 2013-06-01 20:25:04 #include<iostream> #include<cstdlib> #include<fstream> #include<string>
using namespace std;
int main() { ifstream plik; plik.open( "wczytaj.txt" ); string tekst; while( !plik.eof() ) { plik >> tekst; } cout << tekst; system( "pause" ); return 0; } |
|
pekfos |
» 2013-06-01 20:28:43 Ponieważ nie wczytujesz naraz całego pliku. Po pętli w zmiennej pozostaje to, co zostało wczytane jako ostatnie. |
|
Pawel9218 Temat założony przez niniejszego użytkownika |
» 2013-06-01 20:34:13 Ok ,nie ma sposobu żeby bez jakiś dodatkowych rzeczy wczytać odrazu do stringa całego pliku ? Tzn. chodzi mi o to ,żeby 1 poleceniem wczytać cały plik do stringa. Tutaj niby mam "plik.eof()" to myślałem że wczytuje do końca pliku (end of file). |
|
Monika90 |
» 2013-06-01 20:49:15 Cały plik do stringa? Może tak... std::string s(( std::istreambuf_iterator < char >( file ) ), std::istreambuf_iterator < char >() );
|
|
pekfos |
» 2013-06-01 20:50:18 Jest sposób: #include <iostream> #include <sstream> #include <fstream> using namespace std;
int main() { ifstream ifs( "lol.txt" ); ostringstream oss; oss << ifs.rdbuf(); cout << oss.str(); } Cały plik do stringa? Może tak...
std::string s( std::istreambuf_iterator < char >( file ), std::istreambuf_iterator < char >() );
|
A nie powinno być przypadkiem std::istreambuf_iterator < char >( file.rdbuf() ) ? |
|
Pawel9218 Temat założony przez niniejszego użytkownika |
» 2013-06-01 21:02:12 Ok ,dzięki wielkie. |
|
Monika90 |
» 2013-06-01 21:05:03 @pekfos, teraz jest dobrze. Z początku brakowało dodatkowych nawiasów. |
|
pekfos |
» 2013-06-01 21:18:57 Można też bez nich std::string s { std::istreambuf_iterator < char >( file ), std::istreambuf_iterator < char >() };
|
|
« 1 » 2 |