Как в c++ переписать целочисленные элементы из одного файла в другой?

Имеется файл:
cin >> n;
ofstream out;
out.open(“dsa.bat”, ios::binary);
for (int i=0; i < n; i++) {
    a = rand() % 25 + (-10);
    out.write((char*) & a, sizeof(int));
    ofstream out1(“dsa1.bat”, ios::binary);
    ofstream out2(“dsa2.bat”, ios:binary);
    if (a > 0 && a = 0) {
        out1 << a;
    }
    else {
        out2 << a;
    }
}
out.close();
out1.close();
out2.close();

Где “n” вводимое количество символов.
Прошу прощения за отсутствие обработчика ошибки.
Мне нужно из этого бинарника переписать положительные числа в другой файл, например «dsa1», а отрицательные в третий файл.
Не могу этого добиться. Пробовал оператор if (a > o) {s = a}. При этом в s кладётся только первый с конца элемент (если он положительный). While тоже не выходит. Я хочу разобраться.
  • Вопрос задан
  • 1033 просмотра
Пригласить эксперта
Ответы на вопрос 1
NIKITF
@NIKITF
Knows Russian language
Здравствуйте.

Мой вариант решения задачи с помощью класса string:


#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
	ifstream Q("First.txt");
	ofstream Z("Second.txt");
	string temporary;
	while (Q >> temporary)       // извлекаем число из первого
	{
		Z << temporary << " "; // помещаем число во второй файл
	}
	Q.close(); Z.close(); return 0;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы