Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <vector>
- bool isEmpty(const std::string& FileName) {
- std::fstream File(FileName);
- File.seekp(0, std::ios::end);
- size_t tmp = File.tellg();
- return tmp ? false : true;
- }
- class Human {
- private:
- std::string m_Name = "defult";
- int m_Age = 0;
- public:
- Human() {
- }
- ~Human() {
- }
- void Enter() {
- std::cout << "enter name\n";
- std::cin.clear();
- std::cin >> m_Name;
- std::cin.clear();
- std::cout << "enter age\n";
- std::cin.clear();
- while (!(std::cin >> m_Age) || m_Age <= 0 || m_Age >= 150) {
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- }
- }
- void EnterToFile(const std::string& FileName) {
- std::ofstream InFile(FileName, std::ios::app);
- if (isEmpty(FileName)) {
- InFile << m_Name << '\n' << m_Age;
- }
- else {
- InFile << '\n' << m_Name << '\n' << m_Age;
- }
- }
- void DisplayFromFile(const std::string& FileName) {
- std::ifstream OutFile(FileName);
- std::string str((std::istreambuf_iterator<char>(OutFile)), std::istreambuf_iterator<char>());
- std::cout << str << "\n";
- }
- void ReverseDisplayFromFile(const std::string& FileName) {
- std::ifstream OutFile(FileName);
- OutFile.seekg(0, OutFile.end);
- size_t length = OutFile.tellg();
- char tempC;
- std::string Result;
- std::string TempStr;
- std::string Temp;
- while (length--) {
- OutFile.seekg(length, OutFile.beg);
- OutFile.get(tempC);
- if (tempC == '\n') {
- length--;
- Temp = TempStr;
- for (size_t i = 0; i < TempStr.size(); i++) {
- Temp[i] = TempStr[TempStr.size() - i - 1];
- }
- TempStr = "";
- Result += Temp;
- }
- TempStr += tempC;
- }
- Temp = TempStr;
- for (size_t i = 0; i < TempStr.size(); i++) {
- Temp[i] = TempStr[TempStr.size() - i - 1];
- }
- Result += Temp;
- std::cout << Result << "\n";
- }
- void Search(const std::string& FileName, const int& age) {
- std::ifstream OutFile(FileName);
- std::vector<std::string> str;
- OutFile >> str.at(0);
- OutFile >> str.at(1);
- if (std::stoi(str.at(1)) == age) {
- std::cout << str.at(0) << '\n' << str.at(1) << '\n';
- }
- }
- void Search(const std::string& FileName, const std::string& name) {
- std::ifstream OutFile(FileName);
- std::vector<std::string> str;
- str.emplace_back();
- str.emplace_back();
- while (!OutFile.eof()) {
- OutFile >> str.at(0);
- OutFile >> str.at(1);
- if (str.at(0) == name) {
- std::cout << str.at(0) << '\n' << str.at(1) << '\n';
- }
- }
- }
- void DeletFileContet(const std::string& FileName) {
- std::ifstream OutFile(FileName, std::ios::trunc);
- }
- void DeleteFound(const std::string& FileName, const std::string& name) {
- std::ifstream Input(FileName);
- std::ofstream Output("1" + FileName);
- std::vector<std::string> str;
- str.emplace_back();
- str.emplace_back();
- while (!Input.eof()) {
- Input >> str.at(0);
- Input >> str.at(1);
- if (!(str.at(0) == name)) {
- Output << str.at(0) << '\n' << str.at(1) << '\n';
- }
- }
- Input.close();
- Output.close();
- Input.open("1" + FileName);
- Output.open(FileName, std::ios::trunc);
- std::copy(std::istreambuf_iterator<char>(Input), std::istreambuf_iterator<char>(), std::ostreambuf_iterator<char>(Output));
- }
- };
- int main() {
- Human human;
- human.Enter();
- human.EnterToFile("text.txt");
- std::cout << '\n';
- human.DisplayFromFile("text.txt");
- //std::cout << '\n';
- //human.Search("text.txt", "david");
- human.DeleteFound("text.txt", "david");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement