Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Kenton Dang, 0798640
- bcencode.exe
- This program will take a bookfile (in this case Dracula) and a message and then decode a cipher.
- March 14, 2017
- */
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <string>
- using namespace std;
- int main(int argc, char* argv[])
- {
- cout << "here";
- char* temp = "";
- unsigned lineCount = 0;
- int offsetCount = 0;
- char chMsg = ' ';
- char chBook;
- int hi = 0;
- ifstream inputBook(argv[1]);
- ifstream codedMessage(argv[2]);
- ofstream decodedMessage(argv[3]);
- //3 parallel vectors for book file, secret vectors for coded message file
- vector <int> vecLineNumberSecret;
- vector <int> vecOffsetSecret;
- vector <int> vecOffset;
- vector <int> vecLineNumber;
- vector <char> charStorage;
- vector<string> lineStorage;
- //initialize a value into the vectors
- vecOffset.push_back(0);
- vecLineNumber.push_back(0);
- charStorage.push_back(0);
- //Clear pointer in book file
- codedMessage.clear();
- codedMessage.seekg(0, ios::beg);
- //intialize
- vecLineNumberSecret.push_back(0);
- vecOffsetSecret.push_back(0);
- //store line number and offset of coded message
- while (codedMessage >> hi)
- {
- if (codedMessage.peek() == ' ')
- {
- vecLineNumberSecret.push_back(hi);
- }
- else
- {
- vecOffsetSecret.push_back(hi);
- }
- }
- //remove initialization
- vecLineNumberSecret.erase(vecLineNumberSecret.begin());
- vecOffsetSecret.erase(vecOffsetSecret.begin());
- //reset line and offset
- int linecount = 0;
- int offsetcount = 0;
- while (inputBook.get(chBook))
- {
- if (chBook == '\n')
- {
- offsetcount = 0;
- linecount++;
- vecLineNumber.push_back(linecount);
- vecOffset.push_back(offsetcount);
- }
- else
- {
- vecLineNumber.push_back(linecount);
- vecOffset.push_back(offsetcount);
- offsetcount++;
- }
- charStorage.push_back(chBook);
- }//end of inputbook while
- //output to new file if all conditions met
- for (unsigned i = 0; i < vecLineNumberSecret.size(); i++)
- {
- for (unsigned j = 0; j < charStorage.size(); j++)
- {
- if (vecLineNumber[j] == vecLineNumberSecret[i] && vecOffset[j] == vecOffsetSecret[i])
- {
- decodedMessage << charStorage[j];
- }
- }
- }
- //remove initialization
- vecOffset.erase(vecOffset.begin());
- vecLineNumber.erase(vecLineNumber.begin());
- charStorage.erase(charStorage.begin());
- //close
- inputBook.close();
- codedMessage.close();
- cout << "bcencode.exe by Kenton Dang (c) 20XX\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement