从data.txt文件读取一批无序的数字,按降序排列后再写到 新文件dataNew.txt文件

编写一个程序,从data.txt文件读取一批无序的数字,按降序排列后再写到 新文件dataNew.txt文件

如果data.txt文件中的数字形式如下:12,34,56,78,9,45,1,
输出到文件:78,56,45,34,12,9,1,

#include <stdio.h>
#include <iostream>
using namespace std;
#include <algorithm>
#include <vector>
#include <string>

int main()
{

    
    FILE *fp;
    fp = fopen("data.txt", "r+");//打开
    char ch;
    ch = fgetc(fp);
    vector<int> arr;
    int num = 0;
    while (ch != EOF)
    {
        if (ch == ',')
        {
            cout << num << endl;
            arr.push_back(num);
            num = 0;
        }
        else
        {
            num = num * 10 + ch - '0';
        }
        ch = fgetc(fp);
    }
    fclose(fp);
    sort(arr.begin(), arr.end(), greater<int>());
    fp = fopen("dataNew.txt", "w+");
    cout << arr.size() << endl;
    for (int i = 0; i < arr.size(); i++)
    {
        fprintf(fp, "%d,", arr[i]);
    }
    fclose(fp);
    

    return 0;
}
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    fstream ifs;
    ifs.open("data.txt", ios::in);
    int a;
    vector<int> v;
    while (ifs >> a) {
        v.push_back(a);
    }
    //sort(v.rbegin(), v.rend());//算法库自带的函数
    for (int i = 0; i < v.size() - 1; i++) {//选择排序,也可以其他
        for (int j = i+1; j < v.size(); j++) {
            if (v[i] < v[j]) {
                int t = v[i];
                v[i] = v[j];
                v[j] = t;
            }
        }
    }
    ofstream ot;
    ot.open("dataNew.txt",ios::out);
    for (int i = 0; i < v.size(); i++) {
        ot << v[i]<<" ";
    }
    return 0;
}

img