Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5.  
  6. bool isEmpty(const std::string& FileName) {
  7. std::fstream File(FileName);
  8. File.seekp(0, std::ios::end);
  9. size_t tmp = File.tellg();
  10. return tmp ? false : true;
  11. }
  12.  
  13. class Human {
  14. private:
  15. std::string m_Name = "defult";
  16. int m_Age = 0;
  17. public:
  18. Human() {
  19. }
  20.  
  21. ~Human() {
  22. }
  23.  
  24. void Enter() {
  25. std::cout << "enter name\n";
  26. std::cin.clear();
  27. std::cin >> m_Name;
  28. std::cin.clear();
  29. std::cout << "enter age\n";
  30. std::cin.clear();
  31. while (!(std::cin >> m_Age) || m_Age <= 0 || m_Age >= 150) {
  32. std::cin.clear();
  33. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
  34. }
  35. }
  36.  
  37. void EnterToFile(const std::string& FileName) {
  38. std::ofstream InFile(FileName, std::ios::app);
  39. if (isEmpty(FileName)) {
  40. InFile << m_Name << '\n' << m_Age;
  41. }
  42. else {
  43. InFile << '\n' << m_Name << '\n' << m_Age;
  44. }
  45. }
  46.  
  47. void DisplayFromFile(const std::string& FileName) {
  48. std::ifstream OutFile(FileName);
  49. std::string str((std::istreambuf_iterator<char>(OutFile)), std::istreambuf_iterator<char>());
  50. std::cout << str << "\n";
  51. }
  52.  
  53. void ReverseDisplayFromFile(const std::string& FileName) {
  54. std::ifstream OutFile(FileName);
  55. OutFile.seekg(0, OutFile.end);
  56. size_t length = OutFile.tellg();
  57. char tempC;
  58. std::string Result;
  59. std::string TempStr;
  60. std::string Temp;
  61. while (length--) {
  62. OutFile.seekg(length, OutFile.beg);
  63. OutFile.get(tempC);
  64. if (tempC == '\n') {
  65. length--;
  66. Temp = TempStr;
  67. for (size_t i = 0; i < TempStr.size(); i++) {
  68. Temp[i] = TempStr[TempStr.size() - i - 1];
  69. }
  70. TempStr = "";
  71. Result += Temp;
  72. }
  73. TempStr += tempC;
  74. }
  75. Temp = TempStr;
  76. for (size_t i = 0; i < TempStr.size(); i++) {
  77. Temp[i] = TempStr[TempStr.size() - i - 1];
  78. }
  79. Result += Temp;
  80. std::cout << Result << "\n";
  81. }
  82.  
  83. void Search(const std::string& FileName, const int& age) {
  84. std::ifstream OutFile(FileName);
  85. std::vector<std::string> str;
  86. OutFile >> str.at(0);
  87. OutFile >> str.at(1);
  88. if (std::stoi(str.at(1)) == age) {
  89. std::cout << str.at(0) << '\n' << str.at(1) << '\n';
  90. }
  91. }
  92.  
  93. void Search(const std::string& FileName, const std::string& name) {
  94. std::ifstream OutFile(FileName);
  95. std::vector<std::string> str;
  96. str.emplace_back();
  97. str.emplace_back();
  98. while (!OutFile.eof()) {
  99. OutFile >> str.at(0);
  100. OutFile >> str.at(1);
  101. if (str.at(0) == name) {
  102. std::cout << str.at(0) << '\n' << str.at(1) << '\n';
  103. }
  104. }
  105.  
  106. }
  107.  
  108. void DeletFileContet(const std::string& FileName) {
  109. std::ifstream OutFile(FileName, std::ios::trunc);
  110. }
  111.  
  112. void DeleteFound(const std::string& FileName, const std::string& name) {
  113. std::ifstream Input(FileName);
  114. std::ofstream Output("1" + FileName);
  115. std::vector<std::string> str;
  116. str.emplace_back();
  117. str.emplace_back();
  118. while (!Input.eof()) {
  119. Input >> str.at(0);
  120. Input >> str.at(1);
  121. if (!(str.at(0) == name)) {
  122. Output << str.at(0) << '\n' << str.at(1) << '\n';
  123. }
  124. }
  125. Input.close();
  126. Output.close();
  127. Input.open("1" + FileName);
  128. Output.open(FileName, std::ios::trunc);
  129. std::copy(std::istreambuf_iterator<char>(Input), std::istreambuf_iterator<char>(), std::ostreambuf_iterator<char>(Output));
  130. }
  131. };
  132.  
  133. int main() {
  134. Human human;
  135. human.Enter();
  136. human.EnterToFile("text.txt");
  137. std::cout << '\n';
  138. human.DisplayFromFile("text.txt");
  139. //std::cout << '\n';
  140. //human.Search("text.txt", "david");
  141. human.DeleteFound("text.txt", "david");
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement