Advertisement
Dinmrmr

рабочая версия лаб.5 с int

Dec 20th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.49 KB | None | 0 0
  1. #include <iostream>
  2. #include <list>
  3. #include <cstdlib>
  4. #include <fstream>
  5.  
  6. using namespace std;
  7.  
  8. void writeFile(list<int> l), writeList(list<int> l), printList(list<int> l);
  9. list<int> readInList(), formList(), delElem(list<int> l, int num);
  10.  
  11. int main()
  12. {
  13.     setlocale(LC_ALL, "russian");
  14.     /*list<int> l = formList();
  15.  
  16.     writeList(l);*/
  17.  
  18.     list<int> k = readInList();
  19.    
  20.     printList(k);
  21.     k = delElem(k, 2);
  22.     writeFile(k);
  23.    
  24.     list<int> p = readInList();
  25.     printList(p);
  26.  
  27.     system("pause");
  28.     return 0;
  29. }
  30.  
  31. list<int> formList() // функция формирования списка
  32. {
  33.     list<int> l;
  34.  
  35.     int temp;
  36.     cout << "Ввод значений : ";
  37.     while (cin >> temp)
  38.         l.push_back(temp);
  39.  
  40.     return l;
  41. }
  42.  
  43. void writeList(list<int> l) // функция записи списка в двоичный файл
  44. {
  45.     fstream bin("bin.txt", ios_base::binary | ios_base::out | ios_base::app);
  46.     int temp;
  47.     for (list<int>::iterator i = l.begin(); i != l.end(); i++)
  48.     {
  49.         temp = *i;
  50.         bin.write((char*)&temp, sizeof(int));
  51.     }
  52.     bin.close();
  53. }
  54.  
  55. list<int> readInList() //функция чтения из двоичного файла
  56. {
  57.     int temp;
  58.     fstream bin("bin.txt", ios_base::binary | ios_base::in | ios_base::app); //открыли файл
  59.  
  60.     list<int> rl; // создали список
  61.     //bin.seekg(0, ios_base::beg); //устанавливаем указатель на начало
  62.     while (true) // пока верно считываем в файл
  63.     {
  64.         bin.read((char*)&temp, sizeof(int)); // втение в файл
  65.         if (bin.eof()) break; // пока не конец файла
  66.         rl.push_back(temp); // записать в новый список
  67.     }
  68.     bin.close();
  69.  
  70.     return rl; //вернуть новый список
  71. }
  72.  
  73. void printList(list<int> l) //функция вывода списка на экран
  74. {
  75.     cout << "Вывод значений: ";
  76.     for (list<int>::iterator i = l.begin(); i != l.end(); i++)
  77.         cout << *i << ' ';
  78.     cout << endl;
  79. }
  80.  
  81. list<int> delElem(list<int> l, int num) //функция удаления элемента из списка
  82. {
  83.  
  84.     for (list<int>::iterator i = l.begin(); i != l.end(); i++)
  85.     {
  86.         if (*i == num)
  87.         {
  88.             l.pop_back();
  89.             break;
  90.         }
  91.     }
  92.     return l;
  93. }
  94.  
  95. void writeFile(list<int> l)
  96. {
  97.     fstream bin("bin.txt", ios_base::binary | ios_base::out | ios_base::trunc);
  98.  
  99.     int temp;
  100.     for (list<int>::iterator i = l.begin(); i != l.end(); i++)
  101.     {
  102.         temp = *i;
  103.         bin.write((char*)&temp, sizeof(int));
  104.     }
  105.     bin.close();
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement