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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda N00b de como separar una serie de casos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda N00b de como separar una serie de casos  (Leído 4,119 veces)
AlucardDracula

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Duda N00b de como separar una serie de casos
« en: 15 Diciembre 2013, 11:57 am »

Bueno antes de todo decir que soy bastante nuevo en esto de la programación pero me esta gustando  ;D

Y sobre el problema, lo que quiero hacer es un pequeño y simple programa de criptografia en el que la entrada seria consistiria en una secuencia de casos separada con una linia en blanco:
Cada caso tendria 3 partes:

· Una linia con una traducción de 26 caracteres diferentes seguidos (todos diferentes de ' ' y '_' ). Que corresponderian a 'a', 'b' ... 'z'.
· Un natural positivo  n en una linia
·  n linias de texto criptografiado.

Ya tengo hecha la esencia del problema que es que te lo traduzca correctamente, el problema lo tengo en el formato de las salidas me salen todas pegadas. He intentado poner couts << endl; pero para que no me los leyera  :huh:

Una imagen con los formatos de entrada/salida:
http://gyazo.com/7fe40419fa513770e86aba884d0089cb.png

Y mi codigo:
http://pastebin.com/yf02Z7tN

PD: Soy nuevo en el foro por lo que si he hecho algo mal, avisadmelo  :)


En línea

AlucardDracula

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Duda N00b de como separar una serie de casos
« Respuesta #1 en: 15 Diciembre 2013, 21:03 pm »

Nadie?  :huh:


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda N00b de como separar una serie de casos
« Respuesta #2 en: 15 Diciembre 2013, 21:39 pm »

En la imagen, no me explicas nada. Son 1 o 2 entradas diferentes?

Has probado a poner cout << endl << endl;? Quizás es lo que buscas.



PD:Se dice linea, no linia. Por favor, revisa lo que escribiste antes de postear, tienes muchas faltas. Usa signos de puntuación por favor.
En línea

AlucardDracula

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Duda N00b de como separar una serie de casos
« Respuesta #3 en: 16 Diciembre 2013, 15:57 pm »

En la imagen, no me explicas nada. Son 1 o 2 entradas diferentes?

Has probado a poner cout << endl << endl;? Quizás es lo que buscas.



PD:Se dice linea, no linia. Por favor, revisa lo que escribiste antes de postear, tienes muchas faltas. Usa signos de puntuación por favor.

Pueden entrar tantas entradas como el usuario quiera. Osea cada vez que entre un diccionario, el vector con los 26 caracteres  le seguirá el numero de lineas y luego cada linea con el texto a traducir. Luego de traducirlas se puede ingresar otro diccionario y continuar el proceso. Si ya no se quieren ingresar más diccionarios se interrumpe el programa.

Acabo de probar lo del doble endl pero sigue sin funcionar, lo que me acabo de dar cuenta es que nunca pasa de la primera linea que tiene que traducir, es decir, nunca sale del while, se queda esperando por eso que no me funcionaban los couts. ¿Alguna idea de como podría hacer para poner la condición para decirle que ya ha acabado una linea y que debe recibir la siguiente?
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda N00b de como separar una serie de casos
« Respuesta #4 en: 16 Diciembre 2013, 19:00 pm »

Aquí corregí el código:

Código
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX = 'z' - 'a' + 1;
  7.  
  8. int cript(const vector<char>& Dic, char c) {
  9.  
  10.    for (int i = 0; i < MAX; ++i)
  11.        if (c == Dic[i]) return i;
  12.  
  13.    return 0;
  14.  
  15. }
  16.  
  17. int main() {
  18.  
  19.    vector<char> Dic(MAX);
  20.  
  21.    while (true) {
  22.        cout << "Ponga el diccionario:" << endl << " - ";
  23.        for (int i = 0; i < MAX; ++i) cin >> Dic[i];
  24.        int cas;
  25.        cout << "Ponga numero de lineas:" << endl << " - ";
  26.        cin >> cas;
  27.  
  28.        for (int i = 0; i < cas; ++i) {
  29.  
  30.            string c;
  31.  
  32.            cin >> c;
  33.                for(int j=0; j<c.length(); j++)
  34.                    if (c[j] == '_') cout << " ";
  35.                    else {
  36.                        int k = cript(Dic, c[j]);
  37.                        cout << char(k+ 'a');
  38.                }
  39.  
  40.            cout << endl;
  41.        }
  42.        cout << endl;
  43.    }
  44. }

Puse un par de couts explicando lo que pid een cada caso. Ahora te explico:

Tenías un "while(cin << c)". Eso hacía que no saliera del ciclo, y continuaba pidiendo caracteres.
Te convertí 'c' e un string, y lo cambié un poco.

Tenías 1 fallo, que erradicaba en un uso obligado de otro:

Tenías: "for(int i=1;i<MAX;i++) ..."
Por ese motivo, tenias que poner "while(cin >> c[0])" Ese '0' se evita ponerlo, si le I del for la inicializas en 0. Ademásde cambiar eso, podrías quitar el while, o dejarlo como lo puse yo, para que pida infinitamente. (O lo que tu quieras)

En fin, creo que eso es todo. Suerte.
En línea

AlucardDracula

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Duda N00b de como separar una serie de casos
« Respuesta #5 en: 16 Diciembre 2013, 19:45 pm »

Muchas gracias, no sabia que se podría hacer eso del While(true)   :laugh:  y sobre mi código inicializaba esa variable a 1 era para tener un equivalente al while(true) que me has indicado, es decir, "mientras pueda escribir la primera posición del vector([0]) empieza el bucle"  y como ya tenia leída esta posición empezaba el for con el 1.
Ahora me funciona todo correctamente  :xD Muchas gracias
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda N00b de como separar una serie de casos
« Respuesta #6 en: 16 Diciembre 2013, 19:50 pm »

Bueno, y una recomendación personal: Ya que es C++, aprobecha y usa las strings xd
No te obligo jaja, pero puedes evitar fallos.
En línea

AlucardDracula

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Duda N00b de como separar una serie de casos
« Respuesta #7 en: 16 Diciembre 2013, 21:06 pm »

Una última duda tonta. He estado haciendo unos cuenta programas en c++ utilizando strings(no se me había ocurrido utilizarlos para este problema  :P) pero en ninguno he utilizado la librería #include <string> y los programas me funcionaban correctamente. ¿Cuando tengo que incluirla?
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda N00b de como separar una serie de casos
« Respuesta #8 en: 16 Diciembre 2013, 21:08 pm »

La String está definida en la librería estandar si no me equivoco.

Las funciones del tipo "strcat()" y cosas así, sí necesitan la <string>. (strcat es un ejemplo, pero bueno, no se si ese precisamente lo es jaja)
En línea

AlucardDracula

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Duda N00b de como separar una serie de casos
« Respuesta #9 en: 16 Diciembre 2013, 21:29 pm »

Bueno creo que aun no he llegado a usar esas cosas. :P De momento solo he usado concatenación, acceder a una posición del string... vamos lo simple  :laugh:
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] Duda separar string {Solucionado}
Scripting
xassiz_ 6 19,176 Último mensaje 6 Abril 2010, 18:19 pm
por xassiz_
Como separar una consulta por meses
Programación Visual Basic
hunter18 1 2,751 Último mensaje 27 Octubre 2010, 21:24 pm
por raul338
como separar el audio de un dvd multimedia??
Multimedia
cbapolo 2 4,333 Último mensaje 3 Abril 2011, 05:32 am
por simorg
Duda separar procesador de disipador (SOLUCIONADO)
Hardware
Kurolox 7 7,416 Último mensaje 18 Octubre 2012, 16:51 pm
por Aprendiz-Oscuro
Una congresista de EE UU propone la Ley Aaron para evitar casos como el del ...
Noticias
wolfbcn 0 1,434 Último mensaje 16 Enero 2013, 22:45 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines