Publi

  • Definir valores de variables desde una cadena de caracteres [C++11]


    A veces, es muy útil poder definir variables de diversos tipos (int, string, double, bool, etc) o incluso inicializar clases todo desde un string. El objetivo es dar al usuario de nuestro programa más libertad aún y no combernos demasiado la cabeza transformando cada una de las variables. Por otro lado, no siempre podrán estar definidas todas, por lo que hacer una solución específica para cada cao es un poco largo.… Leer artículo completo

  • Salvando archivos de imagen BMP en C

    linux_detergenteHace tiempo hablé de la lectura de archivos BMP en C y puse algún ejemplo. Pero falta lo más importante, poder guardar de nuevo las imágenes, tras aplicar un filtro o generar una imagen desde cero y exportarla. Para ello he creado la siguiente función:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    void SaveBMP(char *filename, bmpInfoHeader *info, unsigned char *imgdata)
    {
      bmpFileHeader header;
      FILE *f;
      uint16_t type;
     
      f=fopen(filename, "w+");
      header.
    Leer artículo completo
  • Programar en C++ puede llegar a ser frustrante

    cuchilloSiempre se dice que una de las reglas de la programación es «escribir poco», tenemos que aunque en ciertos lenguajes, tenemos que escribir dos veces las cosas. Por ejemplo, para un sencillo hola mundo con clases en C++ (se puede hacer todo en el mismo archivo, pero queremos el código bien organizado):
    [ hwclass.h ]

    1
    2
    3
    4
    5
    6
    7
    8
    class HolaMundo
    {
     public:
      HolaMundo();
      ~HolaMundo();

      void coutVersion();
    };

    [ hwclass.cpp ]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <iostream>
    #include "hwclass.h"

    using namespace std;

    HolaMundo::HolaMundo()
    {
      cout<<"Hola Mundo!!"<<endl;
    }

    HolaMundo::~HolaMundo()
    {
      cout<<"Adiós Mundo!!"<<endl;
    }

    void HolaMundo::coutVersion()
    {
      cout<<"HolaMundo Versión 1.0"<<endl;
    }

    [ main.cpp ]

    1
    2
    3
    4
    5
    6
    7
    #include "hwclass.h"

    int main()
    {
      HolaMundo hm;
      hm.
    Leer artículo completo