Hola tengo un problema que es muy simple, antes en C++ usaba el "cin.getline()" para guardar una string con espacios pero estoy haciendo un programa en C y no me guarda los espacios, quería ver si alguien me ayuda ya que creo que es bastante simple, gracias de antemano
void CifradoCersar(){
char frase[1024];
char *p=getenv("USER");
int lfrase;
int n;
int dif;
printf("\n [>>] Cual la frase que quieres cifrar \n");
printf(" %s~$: ",p);
scanf("%s", frase);
printf("\n [>>] Cuantos espacios se corraran los digitos? \n");
printf(" %s~$: ",p);
scanf("%d", &n);
dif = 26 - n;
lfrase = strlen(frase);
/* UBYN */
int i;
while (i == lfrase ){
if(frase[i] + n > 'z'){
frase[i] = frase[i] - dif;
}
else{
frase[i] = frase[i] + n;
}
i++;
}
printf("\n [>>] La frase cifrada es : ");
printf("%s", frase);
i = 0;
while (frase[i] != '\0'){
if(frase[i] - n < 'a'){
frase[i] = frase[i] + dif;
}
else{
frase[i] = frase[i] - n;
}
i++;
}
printf("\n [>>] La frase original es : ");
printf("%s\n",frase);
}
Fíjate si te sirve:
https://elrincondelc.com/foros/viewtopic.php?t=17368 (https://elrincondelc.com/foros/viewtopic.php?t=17368)
Saludos Frijolito
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Fíjate si te sirve:
https://elrincondelc.com/foros/viewtopic.php?t=17368 (https://elrincondelc.com/foros/viewtopic.php?t=17368)
Saludos Frijolito
No se si yo hice algo mal pero uso el "scanf("%1024[^\n]", frase)" se salta a la siguiente scanf que es cuando pregunta el ROT del cifrado
img: https://ibb.co/hCoSa0
Saludos
Probá:
fgets(frase, sizeof(frase), stdin);
Saludos,
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Probá:
fgets(frase, sizeof(frase), stdin);
Saludos,
Sigue sin funcionar, aunque por lo que vi debería me parece erra me pasa lo mismo que antes que se salta esa petición y pasa a la siguiente, mandaría foto pero es lo mismo que lo de arriba
Podrías poner antes del ingreso fflush(stdin); pero no se si es lo más recomendado.
Saludos,
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Podrías poner antes del ingreso fflush(stdin); pero no se si es lo más recomendado.
Saludos,
Tambien lo intente y no funciona no se que pasa yo creo que mejor lo programo en c++ que creo que sera mas facil