У меня есть следующий фрагмент кода на C++.Невозможно написать двоичный файл
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
ofstream output("Sample.txt", ios::out | ios::binary);
for(int i = 0; i < 10; i++)
{
output<<arr[i];
}
Теперь Sample.txt как это:
12345678910
Не является ли "Sample.txt" должен быть в двоичном виде? Почему он не конвертирует все в двоичный, когда я открыл поток в двоичном режиме. Что мне делать, если мне нужен двоичный код каждого элемента массива, а затем распечатайте его в файле.
Что вы подразумеваете под «in binary»? – GManNickG
двоичные значения для соответствующих целых чисел в массиве, поэтому, если целое число в массиве равно 5, оно должно печатать 101 вместо 5 – Jay
Ну, вам нужно использовать функцию 'write' для вывода необработанных данных. Но с этим он * делает * печатать 101 (ну, вероятно, больше как 0000000000000101) на диск, но все, что вы используете для просмотра файла, на самом деле не отображает исходные и нулевые значения. Средство просмотра текстовых файлов будет пытаться его декодировать (например, с ASCII), поэтому при открытии двоичных файлов в текстовом редакторе вы видите искаженное дерьмо. Вы никогда не видите 1 и 0. Возможно, более подходящим будет hex-редактор, который сделает это. – GManNickG