elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1]
1  Sistemas Operativos / GNU/Linux / Duda bash de linux en: 7 Septiembre 2016, 00:33 am
Hola buenas.
Estoy estudiando el bash de linux en mi carrera, y en los apuntes explican mal el como convertir ' en un caracter(ya que bash lo interpreta de uina manera especial tanto ' como $). Resulta que para escapar solamente hay que poner previamente '\'. Muy bien pues hago lo siguiente.

...$ echo ‘En el libro de inglés aparece Peter’\’’s cat’
‘En el libro de inglés aparece Peter’’’s cat’

Y esto es lo que me ocurre. Me salen 3 veces '. Por favor alguien me explique bien como se usa '\'.


2  Programación / Programación C/C++ / Error de ejecucion en: 16 Junio 2016, 17:10 pm
Hola a todos,
sigo con mis practicas de mi carrerra, y se me ha presentado el siguiente problema. Tengo los siguientes codigos:

Código
  1. #include <iostream>
  2. #include "imagen.h"
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[]){
  8.    Imagen uno, dos, salida;
  9.  
  10.    if(argc==5){
  11.        cout << "1" << endl;
  12.        uno.leerImagen(argv[1]);
  13.        dos.leerImagen(argv[2]);
  14.        cout << "2" << endl;
  15.        salida = uno + dos;
  16.        cout << "3" << endl;
  17.        if(argv[4] == "t"){
  18.            cout << "4" << endl;
  19.            ofstream sal;
  20.            sal.open(argv[3]);
  21.            for(int i=0; i<= salida.filas(); i++){
  22.                for(int j=0; j<= salida.columnas(); j++){
  23.                    sal << salida.get(i, j);
  24.                }
  25.                sal << endl;
  26.            }
  27.        }
  28.        if(argv[4] == "b"){
  29.            cout << "5" << endl;
  30.            fstream sal(argv[3], ios::out | ios::binary);
  31.  
  32.            for(int i=0; i<= salida.filas(); i++){
  33.                for(int j=0; j<= salida.columnas(); j++){
  34.                    sal.put(salida.get(i, j));
  35.                }
  36.                sal.put('\n');
  37.            }
  38.  
  39.        }
  40.    }
  41.    else{
  42.        cout << "Error: la forma de usar este programa es: <ejecucion> <imagen1> <imagen2> <imagen_salida> <t(texto) o b(binario)> " << endl;
  43.    }
  44.  
  45. }

A continuación la clase Imagen con los métodos que necesito en el código anterior:

Código
  1. class Imagen{
  2. private:
  3.   byte *datos;  ///< datos de la imagen
  4.   int nfilas; ///< número de filas de la imagen
  5.   int ncolumnas;
  6. public:
  7.  
  8. void Imagen::set(int y, int x, byte v)
  9. {
  10. int i = y * ncolumnas + x;
  11.  
  12. datos[i] = v;
  13. }
  14.  
  15. byte Imagen::get(int y, int x) const
  16. {
  17. int i = y * ncolumnas + x;
  18.  
  19. return datos[i];
  20. }
  21.  
  22. Imagen& Imagen::operator=(const Imagen &otra){
  23.    if(&otra != this){
  24.        cout << "=1" << endl;
  25.        this->nfilas = otra.nfilas;
  26.        cout << "=2" << endl;
  27.        this->ncolumnas= otra.ncolumnas;
  28.        cout << "=3" << endl;
  29.        this->datos = otra.datos;}
  30.    cout << "=4" << endl;
  31.    return *this;
  32.    cout << "=5" << endl;
  33. }
  34.  
  35. Imagen Imagen::operator+(const Imagen &otra){
  36.    Imagen salida;
  37.  
  38.    cout << "+1" << endl;
  39.    salida.nfilas= ncolumnas + otra.ncolumnas;
  40.    if(otra.nfilas > nfilas){
  41.        salida.nfilas= otra.nfilas;
  42.    }
  43.    else{ salida.nfilas= nfilas;}
  44.  
  45.    cout << "+2" << endl;
  46.    salida.datos= new byte [salida.nfilas * salida.ncolumnas];
  47.    cout << "+3" << endl;
  48.    //Inicializar a 0 todos los valores
  49.    for(int c=0; c<= salida.nfilas * salida.ncolumnas; c++ ){
  50.        setPos(c, 0);
  51.    }
  52.    cout << "+4" << endl;
  53.    //Meter primera imagen
  54.    for(int i=0; i<=nfilas; i++){
  55.        for(int j=0; j<=ncolumnas; j++){
  56.            salida.set(i, j, get(i,j));
  57.        }
  58.    }
  59.    cout << "+5" << endl;
  60.    //Meter segunda imagen
  61.    for(int u=nfilas+1; u<= nfilas+otra.nfilas; u++){
  62.        for(int d=ncolumnas+1; d<= ncolumnas + otra.ncolumnas; d++){
  63.            salida.set(u, d, otra.get(u,d));
  64.        }
  65.    }
  66.    cout << "+6" << endl;
  67.    return salida;
  68.    cout << "+7" << endl;
  69. }

La salida al ejecutarlo en consola( con los couts para orientar ) es:
Código
  1. 1
  2. 2
  3. +1
  4. +2
  5. +3
  6. +4
  7. +5
  8. +6
  9. =1
  10. =2
  11. =3
  12. =4
  13. *** Error in `bin/suma': free(): invalid next size (fast): 0x090590f8 ***
  14. Aborted (core dumped)

Gracias de antemano a cualquier ayuda que surja.
3  Programación / Programación C/C++ / Error de ejecucion en: 14 Junio 2016, 17:17 pm
Buenas, soy estudiante de primero de ingenieria informatica y tengo el siguiente problema. En el uso del siguiente metodo me sale un error que dice segmentation fault (core dumped). Creo entender que hago un mal uso de algun puntero y por eso me sale.

Este es el metodo:
Código
  1. void insertar(string cadena){
  2.    Celda *puntero;
  3.    puntero = cabecera;
  4.    while(puntero->siguiente != 0){
  5.        puntero = puntero->siguiente;
  6.    }
  7.    puntero->datos=cadena;
  8.    puntero->siguiente= new Celda;
  9. }

Y esta la clase y el struct que  se utiliza:
Código
  1. struct Celda{
  2. string datos; ///valor de la celda actual
  3. Celda * siguiente;  ///puntero al siguiente elemento de la lista
  4. };
  5.  
  6. class Lista{
  7.  
  8. private:
  9.   Celda * cabecera;
  10. public:
  11. //metodos...
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines