Advertisement
koalasuccess

decode

Jul 25th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. /*
  2. Kenton Dang, 0798640
  3. bcencode.exe
  4. This program will take a bookfile (in this case Dracula) and a message and then decode a cipher.
  5. March 14, 2017
  6. */
  7.  
  8. #include <iostream>
  9. #include <fstream>
  10. #include <vector>
  11. #include <string>
  12. using namespace std;
  13.  
  14. int main(int argc, char* argv[])
  15. {
  16. cout << "here";
  17. char* temp = "";
  18. unsigned lineCount = 0;
  19. int offsetCount = 0;
  20. char chMsg = ' ';
  21. char chBook;
  22. int hi = 0;
  23. ifstream inputBook(argv[1]);
  24. ifstream codedMessage(argv[2]);
  25. ofstream decodedMessage(argv[3]);
  26.  
  27. //3 parallel vectors for book file, secret vectors for coded message file
  28. vector <int> vecLineNumberSecret;
  29. vector <int> vecOffsetSecret;
  30. vector <int> vecOffset;
  31. vector <int> vecLineNumber;
  32. vector <char> charStorage;
  33. vector<string> lineStorage;
  34.  
  35. //initialize a value into the vectors
  36. vecOffset.push_back(0);
  37. vecLineNumber.push_back(0);
  38. charStorage.push_back(0);
  39.  
  40. //Clear pointer in book file
  41. codedMessage.clear();
  42. codedMessage.seekg(0, ios::beg);
  43.  
  44. //intialize
  45. vecLineNumberSecret.push_back(0);
  46. vecOffsetSecret.push_back(0);
  47.  
  48. //store line number and offset of coded message
  49. while (codedMessage >> hi)
  50. {
  51. if (codedMessage.peek() == ' ')
  52. {
  53. vecLineNumberSecret.push_back(hi);
  54. }
  55. else
  56. {
  57. vecOffsetSecret.push_back(hi);
  58. }
  59. }
  60.  
  61. //remove initialization
  62. vecLineNumberSecret.erase(vecLineNumberSecret.begin());
  63. vecOffsetSecret.erase(vecOffsetSecret.begin());
  64.  
  65. //reset line and offset
  66. int linecount = 0;
  67. int offsetcount = 0;
  68.  
  69.  
  70. while (inputBook.get(chBook))
  71. {
  72. if (chBook == '\n')
  73. {
  74. offsetcount = 0;
  75. linecount++;
  76. vecLineNumber.push_back(linecount);
  77. vecOffset.push_back(offsetcount);
  78. }
  79. else
  80. {
  81. vecLineNumber.push_back(linecount);
  82. vecOffset.push_back(offsetcount);
  83. offsetcount++;
  84. }
  85.  
  86. charStorage.push_back(chBook);
  87.  
  88. }//end of inputbook while
  89.  
  90. //output to new file if all conditions met
  91. for (unsigned i = 0; i < vecLineNumberSecret.size(); i++)
  92. {
  93. for (unsigned j = 0; j < charStorage.size(); j++)
  94. {
  95. if (vecLineNumber[j] == vecLineNumberSecret[i] && vecOffset[j] == vecOffsetSecret[i])
  96. {
  97. decodedMessage << charStorage[j];
  98. }
  99. }
  100. }
  101.  
  102. //remove initialization
  103. vecOffset.erase(vecOffset.begin());
  104. vecLineNumber.erase(vecLineNumber.begin());
  105. charStorage.erase(charStorage.begin());
  106.  
  107. //close
  108. inputBook.close();
  109. codedMessage.close();
  110.  
  111. cout << "bcencode.exe by Kenton Dang (c) 20XX\n";
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement