Nexus86Medlem sedan okt. 20023 030 inläggTrådstart#1 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;
}
AAlpha 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äggMen 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?
PPeWMedlem 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. 