Я пытаюсь открыть двоичный файл, чтобы записать в него целое число, а также прочитать целое число от него. Но в любое время, когда я запускаю код, файл не открывается. это мой код:Открытие двоичного файла
int bufferScore; //temporary storage for score from file.
int gamePoints;
cout << "number: "; cin >> gamePoints;
fstream score_file("Score_file.bin", ios::binary | ios::in | ios::out);
if (score_file.is_open())
{
score_file.seekg(0);
score_file.read(reinterpret_cast<char *>(&bufferScore), sizeof(bufferScore));
if (gamePoints > bufferScore)
{
cout << "NEW HIGH SCORE: " << gamePoints << endl;
score_file.seekp(0);
score_file.write(reinterpret_cast<char *>(&gamePoints), sizeof(gamePoints));
}
else
{
cout << "GAME SCORE: " << gamePoints << endl;
cout << "HIGH SCORE: " << bufferScore << endl;
}
}
else
{
cout << "NEW HIGH SCORE: " << gamePoints << endl;
score_file.seekp(0);
score_file.write(reinterpret_cast<char *>(&gamePoints), sizeof(gamePoints));
}
score_file.close();
Я вижу, что вы ищете, писать и закрыть файл. Но я не вижу, чтобы вы явно открывали файл ... Я не думаю, что 'is_open' фактически открывает файл. Я вижу из [онлайн-ссылки] (http://www.cplusplus.com/reference/fstream/fstream/fstream/) конструктор должен открыть файл, но, по-видимому, в вашем случае он не открывает его, да? Можете ли вы также предоставить вывод, напечатанный при запуске программы? – tniles09
Спасибо @Pete Becker. Просто поймал, что сам :) – tniles09
в дополнение к любому печатному выходу вы также можете вставить весь код? Например, я не вижу ваш '#include' (см. Пример из онлайн-справки). –
tniles09