Styling?

Write your question here.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 /* Devolver un vector de enteros con aquellos que son menor que el pivote
  */

#include <iostream>
#include <vector>
#include <fstream>
#include <string>


std::vector<int> menores(const std::string& datos, int pivote){
  
  std::vector<int> vMenores;
  
  for(std::size_t i = 0;i < datos.size(); i++){
    std::cout << "La representacion decimal es: " << std::dec << std::endl;
    if(datos[i] < pivote){
      vMenores.push_back(datos[i]);
      }else{
        std::cerr << "No hay numeros menores que el pivote." << std::endl;
        }
      }
      return vMenores;  
  }


int main(int argc, char* argv[]){
  
  std::cout << "El programa contiene " << argc << " argumentos"
    << std::endl;
    
  if(argc < 2){
    std::cerr << "Falta espeficiar el nombre del archivo." << std::endl;
    return 1;
    }
  
  //Colocamos el datos y el .dat al nombre.
  
  std::string nombreArchivo = argv[1];
  std::size_t Inicial = nombreArchivo.find("datos");
  
  if(Inicial == std::string::npos){
    std::cerr << "Falta el nombre 'datos'." << std::endl;
    nombreArchivo.insert(0,"datos");
    }
  
  std::size_t Final = nombreArchivo.find(".dat");
  
  if(Final == std::string::npos){
    std::cerr << "No hay .dat" << std::endl;
    std::size_t tamFinal = nombreArchivo.length();
    nombreArchivo.insert(tamFinal, ".dat");
    }
  
  //Abrimos el fichero y alcamenamos los datos que hay dentro en un vector
  
  std::ifstream fichDatos(argv[1]);
  
  if(fichDatos.fail() ){
    std::cerr << "No se ha podido abrir correctamente el fichero."
      << std::endl;
    return 2;
    }
    
  int datoLeido;
  std::vector<int> vDatos;
  fichDatos >> datoLeido;
  while(fichDatos.good() ){
    vDatos.push_back(datoLeido);
    fichDatos >> datoLeido;
    } 
  

  //Declaracion del pivote.
  int pivote = 32;
  
  if( argc >= 3){
    pivote = std::stoi(argv[2]);
    }else{
      std::cout << "El pivote toma el valor 32." << std::endl;
      }
  
  std::vector<int> vMenores = menores(vDatos, pivote);
  

  for(std::size_t a = 0; a < vMenores.size(); a++){
    
    std::cout << vMenores[a] << ", ";
   
    }
    
  std::cout << std::endl;
  return 3;
}
Last edited on
What is your question?
Topic archived. No new replies allowed.