I wrote this basic encrytion program and everything seems to work find until the end of the program when it asks the user if they want to restart the program.
It'll print out, "Enter a string no longer than 20 characters long:"... but it doesn't wait for input... just continues with the program.
Does anyone know what's causing this and how I can fix it?
Code:#include <iostream.h> #include <ctype.h> #include <stdlib.h> int main() { char ans; do { //Declarations char string[21]; char decrypt; int i; //Get string from user cout<<"Enter a string no longer than 20 characters long:"<<endl; cin.get(string,20); cin.ignore(80,'\n'); cout<<endl; //encrypt for(int a = 0; a <= 20; a++) { if(isupper (string[a])) i = (int) 'A'; else if(islower ((int) string[a])) i = (int) 'a'; if(isalpha(string[a])) { string[a] = string[a] - i; string[a] = string[a] + 1; string[a] = string[a] % 26; string[a] = string[a] + i; } } //Print out the encrypted string cout<<"The encrypted string is: "<<string<<endl<<endl; //Ask for decrypt cout<<"Would you like to decrypt this string? (y,n) "; cin>>decrypt; cout<<endl; //Decrypt and output if(decrypt != 'n') //decrypt? { for(int j = 0; j <= 20; j++) //decrypt individual characters { if(isalpha(string[j])) { if(isupper (string[j])) i = (int) 'A'; else if(islower ((int) string[j])) i = (int) 'a'; string[j] = string[j] - i; string[j] = string[j] - 1; if(string[j] < 0) string[j] = 25; string[j] = string[j] + i; } } cout<<endl<<endl<<"The decrypted string is: "<<string<<endl<<endl; } //Run again code cout<< "Would you like to run this program again? (y,n) "; cin>>ans; cin.sync(); }while(ans != 'n'); return 0; }