Advertisement
NIKOLAY_TETUS

birukov!

Jun 28th, 2022
1,281
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.36 KB | None
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. //Функция для разделения строки на массив
  9. vector<double> mySplit(string s)
  10. {
  11.     string delimiter = " ";
  12.  
  13.     size_t pos = 0;
  14.     string token;
  15.    
  16.     vector<double> output;
  17.    
  18.     while ((pos = s.find(delimiter)) != string::npos)
  19.     {
  20.         token = s.substr(0, pos);
  21.         //cout << token << endl;
  22.         output.push_back(stod(token));
  23.         s.erase(0, pos + delimiter.length());
  24.     }
  25.     output.push_back(stod(s));
  26.    
  27.     return output;
  28. }
  29.  
  30. int main ()
  31. {
  32.     //Входной файл
  33.     string inputFileName;
  34.     cout << "inputFileName>";
  35.     cin >> inputFileName;
  36.    
  37.     //Выходной файл
  38.     string outputFileName;
  39.     cout << "outputFileName>";
  40.     cin >> outputFileName;
  41.  
  42.     //Получаем данные из файла
  43.     ifstream inFile(inputFileName);
  44.    
  45.     if (!inFile.is_open())
  46.     {
  47.         cout << "Не удалось открыть входной файл" << endl;
  48.         return 0;
  49.     }
  50.    
  51.     string buf;             //Буфферная строка
  52.     size_t itCount = 0;     //Счётчик итераций
  53.     vector<vector<double>> arr;
  54.     while (getline(inFile, buf))
  55.     {
  56.         if (itCount)
  57.             arr.push_back(mySplit(buf));
  58.        
  59.         itCount++;
  60.     }
  61.     inFile.close();
  62.    
  63.  
  64.     //Выводим данные в файл
  65.     ofstream outFile;
  66.     outFile.open(outputFileName);
  67.    
  68.     if (!outFile.is_open())
  69.     {
  70.         cout << "Не удалось открыть выходной файл" << endl;
  71.         return 0;
  72.     }
  73.    
  74.     outFile << "x sinx cosx tgx ctgx" << endl;
  75.     for (size_t i = 0; i < arr.size(); i++)
  76.     {
  77.         //Выводим исходные данные
  78.         outFile << arr[i][0] << " " << arr[i][1] << " " << arr[i][2] << " ";
  79.        
  80.         //Выводим синус
  81.         if ((int)arr[i][0] % 90 == 0)
  82.             outFile << "- ";
  83.         else
  84.             outFile << arr[i][1]/arr[i][2] << " ";
  85.        
  86.         //Выводим косинус
  87.         if ((int)arr[i][0] % 180 == 0)
  88.             outFile << "-";
  89.         else
  90.             outFile << arr[i][2]/arr[i][1];
  91.        
  92.         outFile << endl;
  93.     }
  94.    
  95.     outFile.close();
  96.    
  97.     return 0;
  98. }
Advertisement
RAW Paste Data Copied
Advertisement