c++ 通过解析和排序数字来创建文本文件

问题描述 投票:0回答:1

`美好的一天,我正在为学校制定一个程序(简单)。它接收一个包含 200 万个数字的文本文件,然后必须使用冒泡方法对它们进行排序,并且必须创建一个文本文件,其中显示排序的数字以及排序的时间。执行需要一段时间,但我已经完成了所有操作,即使使用 AI,它也没有创建文本文件。有什么想法吗?

#include \<iostream\>
#include \<fstream\>
#include \<vector\>
#include \<ctime\>

using namespace std;

void lectura(vector\<int\>& numeros);
void ordenamientoBurbuja(vector\<int\>& arr);

int main() {
vector\<int\> numeros;
lectura(numeros);

    // Ordena todos los números leídos
    ordenamientoBurbuja(numeros);
    
    // Crea un archivo y escribe los números ordenados junto con el tiempo de ejecución
    ofstream archivoSalida("Numero`your text`sOrdenados.txt");
    if (!archivoSalida) {
        cout << "Error al crear el archivo de salida." << endl;
        exit(1);
    }
    
    for (int num : numeros) {
        archivoSalida << num << endl;
    }
    
    // Calcula el tiempo de ejecución en segundos con dos decimales
    double tiempoEjecucion = double(clock()) / CLOCKS_PER_SEC;
    archivoSalida << fixed << "Tiempo de ejecución: " << tiempoEjecucion << " segundos" << endl;
    
    archivoSalida.close(); 
    
    return 0;

}

void lectura(vector\<int\>& numeros) {
ifstream archivo;
int numero;
archivo.open("Numeros.txt", ios::in);

    if (!archivo) {
        cout << "No se pudo encontrar el archivo :(";
        exit(1);
    }
    
    while (archivo >> numero) {
        numeros.push_back(numero);
        cout << "Numero leido: " << numero << endl;
    }
    
    archivo.close();

}
`
void ordenamientoBurbuja(vector\<int\>& arr) {
int n = static_cast\<int\>(arr.size()); // Convertir size_t a int
for (int i = 0; i \< n - 1; ++i) {
for (int j = 0; j \< n - i - 1; ++j) {
if (arr\[j\] \> arr\[j + 1\]) {
swap(arr\[j\], arr\[j + 1\]);
}
}
}
}

我尝试 IA、教程并在互联网上阅读。但没有什么用处。

c++ file numbers
1个回答
0
投票

如果你清理代码,它就可以工作。看看这个:

#include <iostream>
#include <fstream>
#include <vector>
#include <ctime>

using namespace std;

void lectura(vector<int>& numeros);
void ordenamientoBurbuja(vector<int>& arr);

int main() {
    vector<int> numeros;
    lectura(numeros);

    // Ordena todos los números leídos
    ordenamientoBurbuja(numeros);
    
    // Crea un archivo y escribe los números ordenados junto con el tiempo de ejecución
    ofstream archivoSalida("NumerosOrdenados.txt");
    if (!archivoSalida) {
        cout << "Error al crear el archivo de salida." << endl;
        exit(1);
    }
    
    for (int num : numeros) {
        archivoSalida << num << endl;
    }
    
    // Calcula el tiempo de ejecución en segundos con dos decimales
    double tiempoEjecucion = double(clock()) / CLOCKS_PER_SEC;
    archivoSalida << fixed << "Tiempo de ejecución: " << tiempoEjecucion << " segundos" << endl;
    
    archivoSalida.close(); 
    
    return 0;
}

void lectura(vector<int>& numeros) {
    ifstream archivo;
    int numero;
    archivo.open("Numeros.txt", ios::in);

    if (!archivo) {
        cout << "No se pudo encontrar el archivo :(";
        exit(1);
    }
    
    while (archivo >> numero) {
        numeros.push_back(numero);
        cout << "Numero leido: " << numero << endl;
    }
    
    archivo.close();
}

void ordenamientoBurbuja(vector<int>& arr) {
    int n = static_cast<int>(arr.size()); // Convertir size_t a int
    for (int i = 0; i < n - 1; ++i) {
        for (int j = 0; j < n - i - 1; ++j) {
            if (arr[j] > arr[j + 1]) {
                swap(arr[j], arr[j + 1]);
            }
        }
    }
}

确保输入文件已存在于目录中。

© www.soinside.com 2019 - 2024. All rights reserved.