![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Pues al final lo he solucionado abriendolo de forma binaria. No se porque si no es asi falla y me gustaria saberlo.
|
|
#2
|
||||
|
||||
|
Cita:
Personalmente no me gustan los stream de C++ y los uso en muy contadas ocasiones. Incluso he detectado bugs en en mismo código fuente de Builder C++ 5 que arreglé en su momento con cambios en el mismo. Saludos. |
|
#3
|
||||
|
||||
|
Asi he dejado el codigo:
Main.cpp: Código PHP:
Código PHP:
Código PHP:
|
|
#4
|
||||
|
||||
|
Ahora tengo otra duda. Si en vez de usar ese cifrado quisiese usar uno de desplazamientos, o sea tener un array con los caracteres válidos y a la función le meto una cadena y un valor de desplazamiento como por ejemplo encriptar ("hola",3). Cada caracter se desplazaría 3 posiciones en el array de letras con lo que quedaría "krñd". ¿como seria eso para cifrar y descifrar? Llevo toda la tarde y no doy con la forma correcta para que no desborde y de un resultado correcto.
He visto que ese cifrado se llama Cesar y vi esto: https://es.m.wikipedia.org/wiki/Cifrado_César El problema con esas fórmulas es que imaginen que la letra es la z y el desplazamiento es 0: Salida=(27+0)%27=0 Sí no hay desplazamiento debería dar 27 ¿no? Última edición por aguml fecha: 25-10-2015 a las 21:41:20. |
|
#5
|
||||
|
||||
|
Cita:
Saludos. |
|
#6
|
||||
|
||||
|
Porque harias un desplazamineto a cero
mira este codigo Código:
#include <iostream>
using namespace std;
string cifrarCesar(const string cadena, const int rotacion){
string sFinal=cadena;
for(unsigned int i=0;i<cadena.length();i++){
sFinal[i]=char(int(cadena[i])+(rotacion %256));
}
return sFinal;
}
string descifrarCesar(const string cadena, const int rotacion){
string sFinal=cadena;
for(unsigned int i=0;i<cadena.length();i++){
sFinal[i]=char(int(cadena[i])-(rotacion %256));
}
return sFinal;
}
int main()
{
string cadena=cifrarCesar("hola mundo",3);
cout<<cadena<<endl;
string descifrada=descifrarCesar(cadena,3);
cout<<descifrada<<endl;
return 0;
}
|
|
#7
|
||||
|
||||
|
Al menos en teoría debe funcionar para cualquier desplazamiento sin preguntar si es o no cero, que es lo que se plantea aguml. La explicación que dí y que aplicas a tu código: el primer carácter es el 0 y el último 255, siendo en total 256.
Salidos. |
|
#8
|
||||
|
||||
|
Después de analizar mi prueba creo que esto funciona correctamente:
Encriptar: Código PHP:
Código PHP:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| con FindComponent en una dll no compila | aguml | C++ Builder | 3 | 30-12-2014 14:33:20 |
| Pasar mi clase a una clase de 3 capas o lo mas parecido | elarys | OOP | 2 | 07-04-2011 23:02:54 |
| No compila FastReport | Chogo | Varios | 3 | 18-06-2010 21:32:42 |
| clase que contiene otra clase definida de forma posterior | astwin | OOP | 5 | 20-02-2009 11:26:55 |
| Mi aplicacion no compila | Lizette | Varios | 2 | 08-11-2008 16:24:25 |
|