Hvis det er en almindelig fil, skal/kan du bruge >> til at læse med. Hvis det skal være lidt bedre end blot fungere, kan du overveje at bruge getline til at læse en linie fra filen, putte den over i en stringstream og bruge >> på den. Se min Guide for detaljer.
Det jeg mente med at du skulle finde ud af hvilke af de to der fejler er at denne linje:
if(file && file.read((char *)&someInt, sizeof(someInt)))
Gør flere ting, den finder ud af om filen blev åbnet, derpå forsøger den at læse en int, og til slut checker den om den kunne læse.
Du kan splitte det op:
bool ReadIntBinary(int& someInt, const char* fileName)
{
std::ifstream file(fileName, std::ios::binary);
if(!file)
{
std::cout << "Kunne ikke åbne filen" << std::endl;
return false;
}
if(!file.read((char *)&someInt, sizeof(someInt)))
{
std::cout << "Kunne ikke læse" << std::endl;
return false;
}
return true;
}
Eller hvis ikke filen er binær:
bool ReadInt(int& someInt, const char* fileName)
{
std::ifstream file(fileName);
if(!file)
{
std::cout << "Kunne ikke åbne filen" << std::endl;
return false;
}
if(!(file >> someInt))
{
std::cout << "Kunne ikke læse" << std::endl;
return false;
}
return true;
}