13/02/2014, 10:28
|
| | 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 |