В моем проекте мне нужно записать в двоичный файл последовательные беззнаковые целые числа, и важно, чтобы каждое число занимало ровно 4 байта. Но когда я открываю двоичный файл с помощью шестнадцатеричного редактора, я вижу это странное: числа написаны правильно только до числа 9; перед номером 10 он добавит еще один лишний байт и напишет '13' (и уже запутался с моим файлом). И продолжают происходить странные вещи - от числа 30 и далее будут писаться разные символы, по одному рядом с каждым числом. почему это? как исправить, хотя бы размер вопроса? Вот мой простой пример кода:
int main()
{
string filename;
cin >> filename;
fstream mystream;
mystream.open(filename, ios::out);
if (mystream)
for (unsigned int i = 0; i < 3200; i++)
mystream.write((char*)&i, sizeof(unsigned int));
mystream.close();
return 0;
}
и прикреплено изображение того, что я вижу в файле: захват файла в шестнадцатеричном редакторе
Благодарность
void main()
в глобальном пространстве имен недопустимо в стандартном C++. Вы должны использовать стандартныйint main()
. - person MikeCAT   schedule 14.04.2016