Guardar string con espacios en C

Iniciado por Frijolito, Octubre 31, 2018, 12:53:54 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 31, 2018, 12:53:54 PM Ultima modificación: Octubre 31, 2018, 01:25:34 PM por Gabriela
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

Código: c
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:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos Frijolito

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Fíjate si te sirve:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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