Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: KillerCreap19 en Noviembre 13, 2017, 09:17:40 pm

Título: AYUDA URGENTE !!
Publicado por: KillerCreap19 en Noviembre 13, 2017, 09:17:40 pm
Tengo el siguiente programa:

#include <stdio.h>
#include <stdlib.h>

void encriptarArchivo();
void desencriptarArchivo();

int main()
{
    int opcion;

    printf( " 1 - Encriptar \n" );
    printf( " 2 - Desencriptar \n" );
    printf( " 3 - Salir\n" );
    printf( "Opcion: " );
    scanf( "%i", &opcion );
    if( opcion == 1 )
    {
        encriptarArchivo();
    }
    else if( opcion == 2 )
    {
         desencriptarArchivo();
    }
}

void encriptarArchivo()
{
    int sum=0,x;
    char frase[50];

    printf("Introduzca una frase: ");
    scanf("%s", &frase);

    for(x = 0; x < 50;x++)
    {
      if (frase
      {
       frase
      }
    }

    printf("\n\nLa nueva frase es:\n\n",sum);
    printf("\n\n%s\n\n",frase);
    printf("\n\n");

    system("PAUSE");
    return 0;
}



void desencriptarArchivo()
{
    int res=0,x;
    char frase[50];

    printf("Introduzca una frase para desencriptar: ");
    scanf("%s",&frase);

    for(x = 0; x < 50;x++)
    {
      if (frase
      {
       frase
      }
    }

    printf("\n\nLa nueva frase es:\n\n",res);
    printf("\n\n%s\n\n",frase);
    printf("\n\n");

    system("PAUSE");
    return 0;
}

Pero en la parte de void encriptarArchivo() no me lee una cadena con espacios ya lo untente con gets(), fgets() y con scanf("%[^\n]",variable);
Título: Re:AYUDA URGENTE !!
Publicado por: Sp3cialK en Enero 27, 2018, 03:25:21 pm
Tengo el siguiente programa:

#include <stdio.h>
#include <stdlib.h>

void encriptarArchivo();
void desencriptarArchivo();

int main()
{
    int opcion;

    printf( " 1 - Encriptar \n" );
    printf( " 2 - Desencriptar \n" );
    printf( " 3 - Salir\n" );
    printf( "Opcion: " );
    scanf( "%i", &opcion );
    if( opcion == 1 )
    {
        encriptarArchivo();
    }
    else if( opcion == 2 )
    {
         desencriptarArchivo();
    }
}

void encriptarArchivo()
{
    int sum=0,x;
    char frase[50];

    printf("Introduzca una frase: ");
    scanf("%s", &frase);

    for(x = 0; x < 50;x++)
    {
      if (frase
  • !='\0')

      {
       frase
  • =frase
  • +2;

      }
    }

    printf("\n\nLa nueva frase es:\n\n",sum);
    printf("\n\n%s\n\n",frase);
    printf("\n\n");

    system("PAUSE");
    return 0;
}



void desencriptarArchivo()
{
    int res=0,x;
    char frase[50];

    printf("Introduzca una frase para desencriptar: ");
    scanf("%s",&frase);

    for(x = 0; x < 50;x++)
    {
      if (frase
  • !='\0')

      {
       frase
  • =frase
  • -2;

      }
    }

    printf("\n\nLa nueva frase es:\n\n",res);
    printf("\n\n%s\n\n",frase);
    printf("\n\n");

    system("PAUSE");
    return 0;
}

Pero en la parte de void encriptarArchivo() no me lee una cadena con espacios ya lo untente con gets(), fgets() y con scanf("%[^\n]",variable);


Se que llego tarde de narices y que ya lo vas a tener resuelto, pero si respondo esto y alguien entra  a este post puede que aprendan a evitar este error tonto, que ocurre por no fijarse jajaja

El problema son los scanf, que al ser un array de chars deberia ser así:
scanf ("%s", frase);                         Sin el &

Y ademas en las funciones void no tienes que usar return, puesto que las funciones void no retornan nada.


Asi que eso, arregla los scanf y quita los return en los void.



ATT: Sp3cialK