Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <locale>
- #include <string>
- #include <iomanip>
- using namespace std;
- //Function Prototypes
- char GetNumber(char letter);
- int main(){
- //Program Variangles
- string phone_number;
- string output_number = "";
- int num_length;
- bool leading_one = false;
- //Declare and Open Input File
- ifstream in_file;
- in_file.open("mp4phoneinput.txt");
- //Loop through the file
- while (in_file && !(in_file.eof())){
- //Get the current line
- getline(in_file, phone_number);
- num_length = phone_number.length();
- //Dont display empty lines
- if (num_length > 0){
- //Echo current line
- cout << phone_number << setw(20-num_length)
- << setfill(' ') << " -> ";
- //Check for leading 1
- char lead_char = phone_number.at(0);
- if (lead_char == '1')
- leading_one = true;
- //Loop through string and convert letters to numbers
- //If there IS a leading one, start a char ahead
- for (int i = leading_one; i < num_length; i++){
- char cur_letter = phone_number.at(i);
- if (cur_letter != '-') //Dont parse hyphens
- output_number += GetNumber(cur_letter);
- }
- //Format Output
- if (leading_one){
- output_number = "1-" + output_number;
- output_number.insert(5, "-");
- output_number.insert(9, "-");
- //Truncate extra numbers
- if (output_number.length() > 14)
- output_number.erase(14, output_number.length());
- cout << output_number;
- }else{
- output_number.insert(3, "-");
- output_number.insert(7, "-");
- //Truncate extra numbers
- if (output_number.length() > 12)
- output_number.erase(12, output_number.length());
- cout << " " << output_number;
- }
- //Reset loop variables
- output_number = "";
- leading_one = false;
- cout << "\n\n";
- }
- }
- return 0;
- }
- //Conversion function:
- //converts chars to appropriate number
- char GetNumber(char letter){
- letter = tolower(letter);
- switch(letter){
- case 'a':
- case 'b':
- case 'c': return '2'; break;
- case 'd':
- case 'e':
- case 'f': return '3'; break;
- case 'g':
- case 'h':
- case 'i': return '4'; break;
- case 'j':
- case 'k':
- case 'l': return '5'; break;
- case 'm':
- case 'n':
- case 'o': return '6'; break;
- case 'p':
- case 'q':
- case 'r':
- case 's': return '7'; break;
- case 't':
- case 'u':
- case 'v': return '8'; break;
- case 'w':
- case 'x':
- case 'y':
- case 'z': return '9'; break;
- //If not a letter, return argument
- default: return letter;
- }
- }
Add Comment
Please, Sign In to add comment