Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void encrypt();
void decrypt(char data[100], int pass, int length, int key, int i);
int main(char data[100], int pass, int length, int key, int i)
{
encrypt();
decrypt(data, pass, length, key, i);
}
void encrypt()
{
char data[100];
int key;
int i;
int pass;
int length;
/* Start Encrypt */
printf("Enter 2 digits key: ");
scanf("%d", &key);
/* Store key into pass */
pass = key;
flushall();
printf("\nEnter data to encrypt: ");
scanf("%[^\n]", data);
length = strlen(data);
for(i=0; i<length; i++)
{
data[i] = data[i]^key;
}
printf("\n==============");
printf("\nEncrypted Data");
printf("\n==============");
printf("\n%s\n", data);
}
void decrypt(char data[100], int pass, int length, int key, int i)
{
printf("%d", pass); // Pass already change....why?
do
{
flushall();
printf("\nEnter unlock key: ");
scanf("%d", &key);
} while (key != pass);
for(i=0; i<length; i++)
{
data[i] = data[i]^key;
}
printf("\n==============");
printf("\nDecrypted Data");
printf("\n==============");
printf("\n%s\n\n", data);
}
Now the declare problem has solve...but now is the loop problems. Even when the user input valid key my program continue looping...I wonder why?