Advertisement
Mark2020H

C++ Solution to find non matched numbers

Oct 27th, 2023
1,528
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.45 KB | None | 0 0
  1. /* Does same as java solution but in c++
  2.  
  3. Test file  for you
  4.  
  5. 85  85  85  85  85  85  85  85  85  85
  6. 85  85  85  85  85  85  85  85  85  85
  7. 85  85  85  85  85  85  85  85  85  85
  8. 85  85  85  85  85  85  85  85  85  85
  9. 85  85  85  85  85  85  85  85  85  85
  10. 85  85  85  85  85  85  85  85  85  85
  11. 85  85  85  85  85  85  85  85  85  85
  12. 85  85  85  85  85  85  85  85  85  35
  13. 85  85  85  85  85  85  85  85  85  85
  14. 85  85  85  85  85  85  85  85  85  85
  15. 85  85  85  85  85  85  85  85  85  85
  16. 85  85  85  85  85  85  85  85  85  85
  17. 85  85  85  85  85  85  85  85  85  85
  18. 85  85  85  85  85  86  85  85  85  85
  19. 85  85  85  85  85  85  85  85  85  85
  20. 85  85  85  85  85  85  85  85  85  85
  21. 85  85  85  85  85  85  85  85  85  85
  22. 85  85  85  85  85  85  85  85  85  85
  23. 85  85  85  85  85  85  85  85  85  85
  24. 85  85  85  85  85  85  85  85  85  85
  25.  
  26. */
  27.  
  28.  
  29. #include <iostream>
  30. #include <fstream>
  31. #include <vector>
  32. #include <sstream>
  33.  
  34. class FileToArray {
  35. private:
  36.     std::vector<std::vector<int>> array;
  37.  
  38. public:
  39.     FileToArray(const std::string& filePath) {
  40.         std::ifstream inputFile(filePath);
  41.  
  42.         if (!inputFile.is_open()) {
  43.             std::cerr << "Error: Could not open file" << std::endl;
  44.             return;
  45.         }
  46.  
  47.         array.resize(20, std::vector<int>(10));
  48.  
  49.         std::string line;
  50.         std::getline(inputFile, line);
  51.  
  52.         std::istringstream lineStream(line);
  53.         int value;
  54.         for (int i = 0; i < 20; i++) {
  55.             for (int j = 0; j < 10; j++) {
  56.                 if (lineStream >> value) {
  57.                     array[i][j] = value;
  58.                 } else {
  59.                     std::cerr << "Error: Not enough data in the file." << std::endl;
  60.                     inputFile.close();
  61.                     return;
  62.                 }
  63.             }
  64.         }
  65.  
  66.         inputFile.close();
  67.     }
  68.  
  69.     void compareAndPrintMismatches(int selectedNumber) {
  70.         for (int row = 0; row < 20; row++) {
  71.             for (int col = 0; col < 10; col++) {
  72.                 int number = array[row][col];
  73.                 if (number != selectedNumber) {
  74.                     std::cout << "Mismatch: Row " << (row + 1) << ", Column " << (col + 1) << " - Value: " << number << std::endl;
  75.                 }
  76.             }
  77.         }
  78.     }
  79.  
  80.     int countElements() {
  81.         return 20 * 10;
  82.     }
  83.  
  84.     void exportToFile(const std::string& outputPath, const std::string& delimiter) {
  85.         std::ofstream outputFile(outputPath);
  86.  
  87.         if (!outputFile.is_open()) {
  88.             std::cerr << "Error: Could not open output file" << std::endl;
  89.             return;
  90.         }
  91.  
  92.         for (int row = 0; row < 20; row++) {
  93.             for (int col = 0; col < 10; col++) {
  94.                 outputFile << array[row][col];
  95.                 if (col < 9) {
  96.                     outputFile << delimiter;
  97.                 }
  98.             }
  99.             outputFile << "\n";
  100.         }
  101.  
  102.         outputFile.close();
  103.     }
  104. };
  105.  
  106. int main() {
  107.     std::string inputFilePath = "numbers.txt"; // Change this to the path of your input file
  108.     FileToArray fileToArray(inputFilePath);
  109.  
  110.     int selectedNumber = 85; // Change this to the number you want to compare
  111.  
  112.     fileToArray.compareAndPrintMismatches(selectedNumber);
  113.  
  114.     int elementCount = fileToArray.countElements();
  115.     std::cout << "Total number of elements in the array: " << elementCount << std::endl;
  116.  
  117.     std::string outputFilePath = "output.txt"; // Change this to the desired output file path
  118.     std::string delimiter = "\t"; // Change this to the desired delimiter
  119.     fileToArray.exportToFile(outputFilePath, delimiter);
  120.  
  121.     return 0;
  122. }
  123.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement