Advertisement
Dinmrmr

лаб5.курсач.int

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