Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<functional>
- #include<conio.h>
- #include <string>
- #include <fstream>
- using namespace std;
- bool verificarArchivo(string archivoNombre)
- {
- fstream archivo;
- archivo.open("..\\output\\"+archivoNombre, ios::out);
- // ruta relativa del archivo para windows --
- // ios::app verifica si existe ya el archivo sino lo crea ademas de escribir en el ultimo punto.
- if (!archivo)
- {
- cout << "No se puede abrir el archivo";
- exit(EXIT_FAILURE);
- return false;
- }
- archivo.flush();
- archivo.close();
- return true;
- }
- void escribirArchivo(string archivoNombre, int num, bool verificar)
- {
- if (verificar)
- {
- fstream archivo;
- archivo.open("..\\output\\" + archivoNombre, ios::app);
- // ruta relativa del archivo para windows --
- /*ios::binary*/
- // ios::app verifica si existe ya el archivo sino lo crea ademas de escribir en el ultimo punto.
- if (!archivo)
- {
- cout << "No se puede abrir el archivo";
- exit(EXIT_FAILURE);
- }
- archivo.seekp(0,ios::end);
- if (archivo.tellg() == 0)
- {
- // Para evitar un error al imprimir el archivo se comprueba si el archivo es nuevo si es asi escribe solo en la primera
- // fila para generar el primer registro
- archivo << num;
- }
- else
- {
- // de no serlo creala un salto de lina para otro registro
- archivo << endl << num;
- }
- archivo.flush();
- archivo.close();
- }
- }
- bool esPrimo(int numero){
- if (numero<2){
- return false;
- }
- int contadorDiv = 0;
- for(int i=numero; i>0; i--){
- if (numero%i == 0){
- contadorDiv += 1;
- }
- }
- if (contadorDiv == 2){
- return true;
- }
- else{
- return false;
- }
- }
- void llenarArchivoConPrimos (string archivoNombre, int numero){
- bool verificar = verificarArchivo(archivoNombre);
- int posicion = 0;
- for (int i= 1; i<=numero; i++){
- if (esPrimo(i)){
- escribirArchivo(archivoNombre, i, verificar);
- posicion += 1;
- }
- }
- }
- int leerArchivo(string archivoNombre)
- {
- string linea;
- ifstream archivo;
- string lectura;
- archivo.open("..\\output\\"+ archivoNombre);
- if (!archivo)
- {
- cout << "No se puede abrir el archivo";
- exit(EXIT_FAILURE);
- }
- int i = 0;
- while (!archivo.eof())
- //eof funcion de la clase sftream que detecta el final de un fichero
- {
- getline(archivo >> ws, linea);
- cout << linea << endl;
- }
- return stoi(linea);
- }
- int main(){
- string archivo;
- int numero = 20;
- archivo = "Entrada.txt";
- bool verificar = verificarArchivo(archivo);
- escribirArchivo(archivo, numero, verificar);
- cout<< "Factores Primos de: ";
- numero = leerArchivo(archivo);
- archivo = "Salidad.txt";
- llenarArchivoConPrimos(archivo,numero);
- leerArchivo(archivo);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement