Question: I keep getting error: no matching function for call to 'getline(const ifstream&, std::__cxxll::string& Could you please fix the mistakes in this code? #include #include #include

I keep getting error: no matching function for call to 'getline(const ifstream&, std::__cxxll::string& Could you please fix the mistakes in this code?

#include

#include

#include

using namespace std;

string readInput(const ifstream fin)

{

string line="";

string message="";

while(!fin.eof()) // To get you all the lines.

{

getline(fin,line); // Saves the line in STRING.

message.append(line); // Append all the lines into a message .

}

return message;

}

void upperCase(string &tempMessage)

{

//clean up the message and make all upper case

for(int i = 0; i < tempMessage.size(); i++)

tempMessage[i] = toupper(tempMessage[i]);

}

string cipher(string tempMessage)

{

//Encode the message through KeyBoard Cipher

for(int i = 0; i < tempMessage.size(); i++){

char letter = tempMessage[i];

switch (letter){

case 'A':

letter = 'Q';

break;

case 'B':

letter = 'W';

break;

case 'C':

letter = 'E';

break;

case 'D':

letter = 'R';

break;

case 'E':

letter = 'T';

break;

case 'F':

letter = 'Y';

break;

case 'G':

letter = 'U';

break;

case 'H':

letter = 'I';

break;

case 'I':

letter = 'O';

break;

case 'J':

letter = 'P';

break;

case 'K':

letter = 'A';

break;

case 'L':

letter = 'S';

break;

case 'M':

letter = 'D';

break;

case 'N':

letter = 'F';

break;

case 'O':

letter = 'G';

break;

case 'P':

letter = 'H';

break;

case 'Q':

letter = 'J';

break;

case 'R':

letter = 'K';

break;

case 'S':

letter = 'L';

break;

case 'T':

letter = 'Z';

break;

case 'U':

letter = 'X';

break;

case 'V':

letter = 'C';

break;

case 'W':

letter = 'V';

break;

case 'X':

letter = 'B';

break;

case 'Y':

letter = 'N';

break;

case 'Z':

letter = 'M';

break;

default :

break;

}

tempMessage[i] = letter;

}

return tempMessage;

}

void translateLetterKeyboard(char letter)

{

switch (letter){

case 'A':

letter = 'Q';

break;

case 'B':

letter = 'W';

break;

case 'C':

letter = 'E';

break;

case 'D':

letter = 'R';

break;

case 'E':

letter = 'T';

break;

case 'F':

letter = 'Y';

break;

case 'G':

letter = 'U';

break;

case 'H':

letter = 'I';

break;

case 'I':

letter = 'O';

break;

case 'J':

letter = 'P';

break;

case 'K':

letter = 'A';

break;

case 'L':

letter = 'S';

break;

case 'M':

letter = 'D';

break;

case 'N':

letter = 'F';

break;

case 'O':

letter = 'G';

break;

case 'P':

letter = 'H';

break;

case 'Q':

letter = 'J';

break;

case 'R':

letter = 'K';

break;

case 'S':

letter = 'L';

break;

case 'T':

letter = 'Z';

break;

case 'U':

letter = 'X';

break;

case 'V':

letter = 'C';

break;

case 'W':

letter = 'V';

break;

case 'X':

letter = 'B';

break;

case 'Y':

letter = 'N';

break;

case 'Z':

letter = 'M';

break;

default :

break;

}

}

string translateLetterMorseCode(char letter)

{

string output = "";

switch(letter){

case 'A':

output = ".- ";

break;

case 'B':

output = "-... ";

break;

case 'C':

output = "-.-. ";

break;

case 'D':

output = "-.. ";

break;

case 'E':

output = ". ";

break;

case 'F':

output = "..-. ";

break;

case 'G':

output = "--. ";

break;

case 'H':

output = ".... ";

break;

case 'I':

output = ".. ";

break;

case 'J':

output = ".--- ";

break;

case 'K':

output = "-.- ";

break;

case 'L':

output = ".-.. ";

break;

case 'M':

output = "-- ";

break;

case 'N':

output = "-. ";

break;

case 'O':

output = "--- ";

break;

case 'P':

output = ".--. ";

break;

case 'Q':

output = "--.- ";

break;

case 'R':

output = ".-. ";

break;

case 'S':

output = "... ";

break;

case 'T':

output = "- ";

break;

case 'U':

output = "..- ";

break;

case 'V':

output = "...- ";

break;

case 'W':

output = ".-- ";

break;

case 'X':

output = ".-- ";

break;

case 'Y':

output = "-.-- ";

break;

case 'Z':

output = "--.. ";

break;

case ' ':

output = " ";

break;

case '1':

output = ".---- ";

break;

case '2':

output = "..--- ";

break;

case '3':

output = "...-- ";

break;

case '4':

output = "....- ";

break;

case '5':

output = "..... ";

break;

case '6':

output = "-.... ";

break;

case '7':

output = "--... ";

break;

case '8':

output = "---.. ";

break;

case '9':

output = "----. ";

break;

case '0':

output = "----- ";

break;

default:

output = letter;

}

return output;

}

void printOutput(string userInput,string encodedMessage)

{

cout << endl << "You Gave me the Message: " << endl << userInput << endl << endl

<< "Your Message Encoded is: " << endl << encodedMessage << endl;

}

int main()

{

cout << "Assignment 0- Combination Cipher ";

//Prompt the user for a string

string userInput ="";

ifstream fin("input.txt");

userInput = readInput(&fin);

string tempMessage =userInput;

upperCase(&tempMessage);

tempMessage = cipher(tempMessage);

//Encode the message through KeyBoard Cipher a second time

for(int i = 0; i < tempMessage.size(); i++){

char letter = tempMessage[i];

translateLetterKeyboard(&letter) ;

}

//encode the message through Morse code

string encodedMessage = "";

for(int i = 0; i < tempMessage.size(); i++){

encodedMessage += translateLetterMorseCode(tempMessage[i]);

}

//Print the output

printOutput(userInput,encodedMessage);

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!