Advertisement
rnort

Untitled

Nov 14th, 2011
399
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. #include <fstream>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <cstring>
  5. #include <clocale>
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     setlocale(LC_ALL, "");
  10.  
  11.     std::string file_name, var;
  12.     std::cout << "Имя файла с расширением( или полный путь к файлу с заданием ):\n";
  13.     std::cin >> file_name;
  14.     std::cout << "Шифр студента:\n";
  15.     std::cin >> var;
  16. //--------------------------//
  17.     std::ifstream inp_file(file_name.c_str(), std::fstream::in );
  18.     try{
  19.         if (!inp_file.is_open()) throw std::string("Can't open file!\n");
  20.     }catch(std::string& e){
  21.         std::cout << e;
  22.     }
  23.  
  24.     char tmp_line[80] = {0};
  25.  
  26.     while (!inp_file.eof()){
  27.         inp_file.getline(tmp_line, 80);
  28.         if ( strstr(tmp_line, var.c_str() )){
  29.             inp_file.getline(tmp_line, 80);
  30.             inp_file.getline(tmp_line, 80);
  31.            
  32.             goto success;
  33.             }
  34.         }
  35.     std::cout << "Задание с шифром " << var << " не найдено.\n";
  36.     std::cin.get();
  37.     return 0;
  38. // -------------------------//
  39. success:
  40.     int inp_data[8][5] = {{0}};
  41.  
  42.     for (int j = 0; j < 8; ++j){
  43.         inp_file.getline(tmp_line, 80);
  44.         std::string tmp_str = tmp_line;
  45.         std::istringstream sstr(tmp_str, std::istringstream::in );
  46.         int k;
  47.         for (k = 0; k < 5 ;++k){
  48.             sstr >> inp_data[j][k];    
  49.         }
  50.     }
  51.     inp_file.close();
  52. // --------------------------//
  53.     int A[5][8] = {{0}};
  54.     for (int i = 0; i < 8; ++i){
  55.         if (inp_data[i][1] % 10 != 6)  A[(inp_data[i][1] % 10) - 1][i] = -1;
  56.         if (inp_data[i][1] / 10 != 6)  A[(inp_data[i][1] / 10) - 1][i] = 1;
  57.     }
  58. // ------------------------------//
  59.     std::ofstream out_file("out.txt", std::fstream::out );
  60.  
  61.     out_file << "Топологическая матрица соединений для варианта " << var << std::endl << std::endl;
  62.     for (int i = 0; i < 5; ++i ){      
  63.         for (int j = 0; j < 8; ++j)
  64.             out_file << A[i][j] << " ";
  65.         out_file << std::endl;
  66.         }
  67.     out_file.close();
  68. // ----------------------------- //
  69.     std::cout << "Результат сохранен в файл out.txt в папке с программой.\n";
  70.     std::cin.ignore();
  71.     std::cin.get();
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement