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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No consigo imprimir
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No consigo imprimir  (Leído 2,808 veces)
DamnSystem

Desconectado Desconectado

Mensajes: 131



Ver Perfil
No consigo imprimir
« en: 28 Diciembre 2017, 08:22 am »

Buenas, estoy con un ejercicio ( voy por partes ahora mismo no estoy atacando el problema como tal), mi idea es controlar lo que el usuario mete, con una condición guardo 8 0 o 1 si introduce algo que no es, lo siguiente que introduzca el usuario quiero macharlo ( con el fin de no guardar cosas que luego tendría que quitar), y si el usuario introduce un negativo corte pero la cosa es que no consigo que la función mía imprima para ver si lo tengo bien mi vector alguien me podría decir por que?


//  Implemente un programa que lea desde teclado valores de bits ( ceros y unos como enteros)
//  ,ignorando el resto de números positivos. El programa terminará cuando se lea un valor
//  negativo. Cada 8 bits leídos, el programa calculará el número entero que representa
//  y lo transformará en el carácter(char) correspondiente. El primer bit leído es el más
//  significativo. Si el carácter corresponde a una letra mayúscula o minúscula, lo
//  mostrará por pantalla. En caso contrario, lo sumará a un contador OTROS. Al final, el
//  programa debe mostrar el porcentaje de letras y OTROS símbolos leídos.
//  Si al terminar no se ha leído un bloque entero de 8 bits, no se imprimira el carácter


#include <iostream>
using namespace std;

int const MAX_VECTOR = 30;

void imprimir(char _vector[MAX_VECTOR]);

int main() {
    //  Variables y constantes
    int num_introducido = 0;
    char vector[30] = {0};
    int contador = 0;
    int contador_vector = 0;
   
    //  Desarrollo del programa
    do{
        cout << "Introduce un bit: " << endl;
        cin >> num_introducido;
        if(num_introducido >= 0 && num_introducido <= 1){
            vector[contador] += num_introducido;
            contador_vector++;
        }
        if(contador_vector < 8){
            contador++;
        }
    }while(num_introducido >= 0);
   
    imprimir(vector);
   
    return 0;
}

void imprimir(char _vector[MAX_VECTOR]){
    for(int i = 0; i < MAX_VECTOR; i++){
        cout << _vector << endl;
    }
}


En línea

<3 Stay Hungry, Stay Foolish <3
alpachino98

Desconectado Desconectado

Mensajes: 37


Valar Morghulis


Ver Perfil
Re: No consigo imprimir
« Respuesta #1 en: 28 Diciembre 2017, 14:57 pm »

No acabo de entender que tiene que hacer el programa pero si te ayuda de algo, me he dado cuenta que los 0 y 1 los lees en una varibale tipo int y que luego se lo metes a un vector que es de tipo char (este puede ser un error).Otra cosa es que en la función imprimir imprimes hasta el tamaño maximo del vector aunque no este lleno, esto seguramente te imprime valores que no has metido, como un monton de 0, y por último y por lo que seguramente no te vaya lo de imprimir es porque cuando imprimes un vector tienes que decirle que posición imprimir.

Código:
#include <iostream>
using namespace std;

int const MAX_VECTOR = 30;

typedef int vector[MAX_VECTOR];

void imprimir(vector,int);

int main() {
    //  Variables y constantes
    int num_introducido = 0;
    vector V = {0};
    int contador = 0;
    int contador_vector = 0;
   
    //  Desarrollo del programa
    do{
        cout << "Introduce un bit: " << endl;
        cin >> num_introducido;
        if(num_introducido >= 0 && num_introducido <= 1){
            V[contador] += num_introducido;
            contador_vector++;
        }
        if(contador_vector < 8){
            contador++;
        }
    }while(num_introducido >= 0);
   
    imprimir(V,contador_vector);
   
    return 0;
}

void imprimir(vector _vector,int tam){
    for(int i = 0; i < tam; i++){
        cout << _vector[i] << endl;
    }
}

Así funciona la función imprimir aunque te quedaría hacer lo de los 8 bits pero mírate de que tipo quieres que sea el vector y en lo que le metes. Espero que te sirva de ayuda.


En línea

DamnSystem

Desconectado Desconectado

Mensajes: 131



Ver Perfil
Re: No consigo imprimir
« Respuesta #2 en: 28 Diciembre 2017, 21:27 pm »

Buenas gracias, el programa tengo que a través de enteros unir 8 enteros que sean 1 y 0 y pasarlo a char y saber cuantas mayúsculas minúsculas o otros símbolos he introducido, el fallo es que no imprime nada no es que me ponga cosas como -2371732, es que no imprimen nada , y en la función le estoy diciendo la posición del vector que quiero que muestre, y el vector esta relleno de 0, de todas formas he planteado el problema de otra forma por que así no creo que llegara muy lejos,

Gracias por tu ayuda :)
En línea

<3 Stay Hungry, Stay Foolish <3
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: No consigo imprimir
« Respuesta #3 en: 28 Diciembre 2017, 22:26 pm »

Antes de nada. ¿Has visto como trabajar a nivel de bit, con operadores como & | ^ << >>?
En línea

DamnSystem

Desconectado Desconectado

Mensajes: 131



Ver Perfil
Re: No consigo imprimir
« Respuesta #4 en: 28 Diciembre 2017, 23:07 pm »

La verdad es que como en la uni lo he dado entonces no quiero utilizarlo, pero le echare un vistazo :)
En línea

<3 Stay Hungry, Stay Foolish <3
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: No consigo imprimir
« Respuesta #5 en: 28 Diciembre 2017, 23:44 pm »

En verdad se puede hacer sin saber eso.
Dicho esto he transportado tu código a C, de forma literal, y sí me imprime el array.
En línea

DamnSystem

Desconectado Desconectado

Mensajes: 131



Ver Perfil
Re: No consigo imprimir
« Respuesta #6 en: 29 Diciembre 2017, 08:14 am »

Si es que imprimir debería lo que es que no entendía nada pero gracias ya estoy en proceso de hacerlo de otra forma como te dije :)
En línea

<3 Stay Hungry, Stay Foolish <3
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
imprimir VB
Programación Visual Basic
arkhaios 2 1,858 Último mensaje 10 Junio 2005, 14:44 pm
por arkhaios
Imprimir
Ingeniería Inversa
Juanbayne 1 1,804 Último mensaje 11 Noviembre 2005, 20:57 pm
por ErCuñaodeRocky
Como imprimir un .pdf que no te deja imprimir?
Windows
nichihack 8 24,834 Último mensaje 2 Mayo 2013, 15:30 pm
por sol19200
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines