Nexus86Medlem sedan okt. 20023 030 inlägg Hur gör jag för att läsa innehållet från en fil till en string? Jag får inte till det med fstream.
#include <iostream>
#include <string>
#include <fstream>
#include <sys/stat.h>
using namespace std;
...
string filInnehall;
fstream openFile("H:\\test.txt", ios::in);
openFile.read(filInnehall, fileSize("H:\\test.txt"));
openFile.close();
...
int filesize(char* fileName) {
struct stat stats;
int retval = 0;
if (stat(fileName, &stats)) {
MessageBox(hMainWindow, "Could not get filesize", "Error", MB_OK | MB_ICONERROR);
} else {
retval = stats.st_size;
}
return retval;
}
Alpha IIMedlem sedan maj 20002 993 inlägg Brukar själv inte använda fstream utan jag använder c-funktionerna för filhantering istället.
Då gör man så här:
FILE *pFile;
pFile = fopen(filename, "r");
if (pFile == NULL)
MessageBox(NULL, "Kunde inte öppna filen!", "Fel", MB_OK | MB_ICONWARNING);
char buffer[1024];
while (!feof(pFile))
{
fgets(pFile, 1024, buffer);
printf("%s\n", buffer);
}
fclose(pFile);
Nexus86Medlem sedan okt. 20023 030 inlägg Men som sagt så vill jag läsa till en string, inte en char. ;)
Varför använder du dig inte av get.line (om allt är på samma rad) eller get?
PeWMedlem sedan juni 200010 432 inlägg string s_line,s_all;
ifstream in("H:\\test.txt");
while(in){
in >> s_line;
s_all+=s_line+"\n";
}
//s_all innehåller nu filens innehåll
Nexus86Medlem sedan okt. 20023 030 inlägg
PeW skrev:
string s_line,s_all;
ifstream in("H:\\test.txt");
while(in){
in >> s_line;
s_all+=s_line+"\n";
}
//s_all innehåller nu filens innehåll
Med den där koden får jag alla ord som står i filen, ett på varje rad. :p