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:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos Frijolito

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Fíjate si te sirve:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

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: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos

Probá:

fgets(frase, sizeof(frase), stdin);

Saludos,

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
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,

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
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