Хотел бы спросить правильный алгоритм кода к этой задаче?
Написать программу, которая создает копию txt файла, который содержит действительные числа, но сначала идут положительные элементы, затем нулевые, а в конце отрицательные.
void main()
{
char ch[80];
ifstream in("text1.txt");
if (!in) {
cout << "fail" << endl;
}
ifstream fin("text1.txt");
if (in)
{
int i = 0;
do {
i++;
if (i > 0) {
}
if (i < 0) {
}
in.eof();
} while (!in.eof());
ofstream fout("text1_copy.txt");
fout << fin.rdbuf();
fout.close();
fin.close();
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Как уже задолбали этой задачей с разных аккаунтов...
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
vector<double> pos, neg;
int zeros = 0;
double x;
for(ifstream in("text.txt"); in >> x; )
{
if (x > 0) pos.push_back(x);
else if (x < 0) neg.push_back(x);
else zeros++;
}
ofstream out("text_copy.txt");
for(double x : pos) out << x << "\n";
for(int i = 0; i < zeros; ++i) out << 0.0 << "\n";
for(double x : neg) out << x << "\n";
}
Формат вывода (в строку, табличкой, количество знаков), защиту от дурака (нет файла, в нем не числа) - допишите сами.