Tjena! Är inte helt säker på exakt vad det är du vill göra; vill du veta hur mycket du har läst, eller hur många tecken filen har? Asch, skrev svaret och fattade efteråt vad det var du ville veta. Tack Niklas! Jag kan ha gjort något annat fel när jag pillrade med det där. Jag ska undersöka lite mer om det är rätt men det ser rätt ut ;)Lagra bytes lästa från fil med ifstream.
Jag har lite problem med C:s läsning från fil funktioner jämfört med C++. I C kan man tydligen skriva:
FILE *filePointer;
filePointer = fopen("test.txt", "rb");
Sedan om man vill läsa något kan man skriva:
unsigned int bytesRead;
unsigned short int temp;
bytesRead = fread(&temp, 1, 2, filePointer);
Där lagras hur många bytes man har läst in i variabeln bytesRead. Men om man vill göra samma sak i C++, hur gör man då? Jag tänkte nåt liknande som:
ifstream file("test.txt", ios::in || ios::binary);
bytesRead = file.read((char*) &temp, sizeof(temp));
Men det går inte. Jag har läst något om att funktionen tellg() ska returnera hur många bytes in i filen man läst. Men är det verkligen samma sak om man skriver:
file.read((char*) &temp, sizeof(temp));
streampos pos = file.tellg();
bytesRead = pos;
Jättetacksam för svar! :)Sv: Lagra bytes lästa från fil med ifstream.
Standardvarianten är så här:
std::string input;
std::ifstream file(...);
ifstream >> input;
//vill du nu ha antalet tecken kollar du bara i input:
int antaltecken=input.length();
Sv: Lagra bytes lästa från fil med ifstream.
Rent spontant så är jag hyfsat säker på att den varianten du kör med faktiskt är rätt som den är.Sv: Lagra bytes lästa från fil med ifstream.