Tema: Duda con c++
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2014, 10:28
ferreon
 
Fecha de Ingreso: diciembre-2013
Mensajes: 12
Antigüedad: 11 años
Puntos: 0
Duda con c++

Estoy haciendo un programa para desencriptar y encriptar segun el metodo cesar.
Tengo este codigo y 1 problema.

Código:
// Programa creado por Rollth
// Cifrado Cesar 1.0
// 12/2/2014

#include <iostream>// Añade la libreria iostream.h (Para el cout)
#include <stdio.h> // Introduce la libreria stdio.h para poder poner espacios en el codigo.
using namespace std;// Usa el espacio estandar de la libreria iostream para inicializar cin y cout

int main()// Empieza a correr el programa
{
    int n,m,opcion;// Crea dos variables "n" y "m". Además de otra variable opcion
    char codigo[10];// Crea la variable del cifrado
    cout << "------------------------------";// Presentacion del programa
    cout << endl;// Pasa la linea
    cout << ".     Cifrado Cesar 1.1      .";// Presentacion del programa
    cout << endl;// Pasa la linea
    cout << ".        Por Rollth          .";// Presentacion del programa
    cout << endl;// Pasa la linea
    cout << "------------------------------";// Fin presentacion del programa
    cout << endl;// Pasa la linea
    cout << "Si quieres cifrar una frase pulsa 1";// Manda el mensaje en rojo
    cout << endl;// Pasa de linea
    cout << "Si quieres descifrar pulsa 2";// Manda el mensaje en rojo
    cout << endl;// Pasa de linea
    cin >> opcion;// El usuario escoge la opcion
    if (opcion == 1)// Si la opcion 1
    {
    cout << "Introduce el cifrado";// Manda el mensaje en rojo
    cout << endl;// Pasa la linea
    gets(codigo);// Para escribir el codigo
    cout << "Introduce la clave";// El usuario escoge la clave
    cout << endl;// Pasa la linea
    cin >> m;// El usuario escoge el valor de la "m"
    n = 0;// Le da el valor de 1 a la "n"
    while (n != m)
    {
    n += 1;
    if (codigo[0] >= 'a' && codigo[0] < 'z')// Si el codigo esta entre "a" y "z"
    {
    codigo[0] += 1;// Se suma 1
    }
    if(codigo[0] == 'z')// Pero si es "z"
    {
    codigo[0] = 'a';// Se convierte en "a"
    }
    if(codigo[1] >= 'a' && codigo[1] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[1] += 1;
    }
    else if(codigo[1] == 'z')
    {
    codigo[1] = 'a';
    }
    if(codigo[2] >= 'a' && codigo[2] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[2] += 1;
    }
    else if(codigo[2] == 'z')
    {
    codigo[2] = 'a';
    }
    if(codigo[3] >= 'a' && codigo[3] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[3] += 1;
    }
    else if(codigo[3] == 'z')
    {
    codigo[3] = 'a';
    }
    if(codigo[4] >= 'a' && codigo[4] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[4] += 1;
    }
    else if(codigo[4] == 'z')
    {
    codigo[4] = 'a';
    }
    if(codigo[5] >= 'a' && codigo[5] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[5] += 1;
    }
    else if(codigo[5] == 'z')
    {
    codigo[5] = 'a';
    }
    if(codigo[6] >= 'a' && codigo[6] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[6] += 1;
    }
    else if(codigo[6] == 'z')
    {
    codigo[6] = 'a';
    }
    if(codigo[7] >= 'a' && codigo[7] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[7] += 1;
    }
    else if(codigo[7] == 'z')
    {
    codigo[7] = 'a';
    }
    if(codigo[8] >= 'a' && codigo[8] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[8] += 1;
    }
    else if(codigo[8] == 'z')
    {
    codigo[8] = 'a';
    }
    if(codigo[9] >= 'a' && codigo[9] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[9] += 1;
    }
    else if(codigo[9] == 'z')
    {
    codigo[9] = 'a';
    }
    if(codigo[10] >= 'a' && codigo[10] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[10] += 1;
    }
    else if(codigo[10] == 'z')
    {
    codigo[10] = 'a';
    }
    cout << codigo;
    cout << endl;
    }
    }
    else// En el otro caso
    {
    cout << "Introduce el cifrado";// Manda el mensaje en rojo
    cout << endl;// Pasa la linea
    gets(codigo);// Para escribir el codigo
   	n = 0;// Le da valor 1 a la "n"
    m = 25;// Le da el valor de 25 a la "m"
    while (n != m)
    {
    n += 1;
    if (codigo[0] >= 'a' && codigo[0] < 'z')// Si el codigo esta entre "a" y "z"
    {
    codigo[0] += 1;// Se suma 1
    }
    if(codigo[0] == 'z')// Pero si es "z"
    {
    codigo[0] = 'a';// Se convierte en "a"
    }
    if(codigo[1] >= 'a' && codigo[1] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[1] += 1;
    }
    else if(codigo[1] == 'z')
    {
    codigo[1] = 'a';
    }
    if(codigo[2] >= 'a' && codigo[2] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[2] += 1;
    }
    else if(codigo[2] == 'z')
    {
    codigo[2] = 'a';
    }
    if(codigo[3] >= 'a' && codigo[3] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[3] += 1;
    }
    else if(codigo[3] == 'z')
    {
    codigo[3] = 'a';
    }
    if(codigo[4] >= 'a' && codigo[4] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[4] += 1;
    }
    else if(codigo[4] == 'z')
    {
    codigo[4] = 'a';
    }
    if(codigo[5] >= 'a' && codigo[5] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[5] += 1;
    }
    else if(codigo[5] == 'z')
    {
    codigo[5] = 'a';
    }
    if(codigo[6] >= 'a' && codigo[6] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[6] += 1;
    }
    else if(codigo[6] == 'z')
    {
    codigo[6] = 'a';
    }
    if(codigo[7] >= 'a' && codigo[7] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[7] += 1;
    }
    else if(codigo[7] == 'z')
    {
    codigo[7] = 'a';
    }
    if(codigo[8] >= 'a' && codigo[8] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[8] += 1;
    }
    else if(codigo[8] == 'z')
    {
    codigo[8] = 'a';
    }
    if(codigo[9] >= 'a' && codigo[9] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[9] += 1;
    }
    else if(codigo[9] == 'z')
    {
    codigo[9] = 'a';
    }
    if(codigo[10] >= 'a' && codigo[10] < 'z')// Si el codigo esta entre "a" y "z",Se suma 1,Pero si es "z",Se convierte en "a"
    {
    codigo[10] += 1;
    }
    else if(codigo[10] == 'z')
    {
    codigo[10] = 'a';
    }
    cout << codigo;
    cout << endl;
    }
    }
	system("PAUSE");// Termina el programa
}
La cosa es que cuando en el gets(codigo) el programa se salta esta linea y se va hacia la siguiente
Si poco cin si me funciona, pero no me acepta los espacios, que me aconsejan hacer?

Gracias de antemano