• Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    Я понял , у меня заработало только когда я в коде блоксе создал проект и добавил туда все вот это , но есть вариант как то самому без проекта собрать ?
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    void showMinutestoExecution(Record * myRecords , int amountRecords){
        time_t currentS , nowS = time(0);
        for(int m = 0; m < amountRecords; m++){
            currentS = myRecords[m].timeS;
            if(currentS > nowS){
                cout <<"Remain about: " <<(currentS - nowS)/60 <<" minute(s)"<< endl;
                cout << myRecords[m].mode;
                cout << myRecords[m].temperature;
                cout << endl;
            }
        }
    }
    void showRecordsbyDate(Record * myRecords , int amountRecords){
        string conditionalDate , currentDate;
            cout << "NOW YOU ARE IN THE |FILTER OUT BY DATE OPERATION|" << endl;
            cout << "Enter the date for filter: ";
            cin >> conditionalDate;
            cout << "Your records: " << endl;
            for(int m = 0; m < amountRecords; m++){
            currentDate = myRecords[m].date;
            currentDate.erase(0  , 5);
            currentDate.erase(10  , 7);
            if(currentDate == conditionalDate){
            cout << "Record: "<< m << endl;
            cout << "_____________________"<< endl;
            cout << myRecords[m].date;
            cout << myRecords[m].mode;
            cout << myRecords[m].temperature;
            cout << endl;
            }
        }
    }
    void showMyrecords(Record * myRecords , int amountRecords){
        cout << "--Current Records--" << endl;
        for(int m = 0; m < amountRecords; m++){
            cout << "Record: "<< m << endl;
            cout << "_____________________"<< endl;
            cout << myRecords[m].date;
            cout << myRecords[m].mode;
            cout << myRecords[m].temperature;
            cout << endl;
        }
        cout << "(Total): " << amountRecords <<endl;
    }
    void findAmountnextMon(Record* myRecords, int amountRecords){
        string conditionalMode , currentMode;
        time_t timeSmax = time(0) , timeSmin;
        int amountSatisfiedrecords = 0;
        struct tm* conditionalToday{0};
        cout << "NOW YOU ARE IN THE |FILTER OUT NEXT MONTH OPERATION|" << endl;
        cout << "Enter the mode for filter: ";
        cin >> conditionalMode;
        conditionalToday = localtime(&timeSmax);
        for(int m =0; m<2; m++){
        if(conditionalToday -> tm_mon != 11)
            conditionalToday -> tm_mon += 1;
        else{
            conditionalToday -> tm_mon = 0;
            conditionalToday -> tm_year += 1;
        }
        conditionalToday -> tm_min = 0;
        conditionalToday -> tm_hour = 0;
        conditionalToday -> tm_mday = 1;
        conditionalToday -> tm_sec = 0;
        if(m == 0)
        timeSmin = mktime(conditionalToday);
        if(m == 1)
        timeSmax = mktime(conditionalToday);
        }
        cout << "Your records: " << endl;
        for(int m = 0; m < amountRecords; m++){
            currentMode = myRecords[m].mode;
            currentMode.erase(0,5);
            currentMode.erase(currentMode.size() - 1,1);
            if(timeSmin < myRecords[m].timeS && timeSmax > myRecords[m].timeS && conditionalMode == currentMode){
            cout << "Record: "<< m << endl;
            cout << "_____________________"<< endl;
            cout << myRecords[m].date;
            cout << myRecords[m].mode;
            cout << myRecords[m].temperature;
            cout << endl;
                amountSatisfiedrecords += 1;
            }
        }
        cout << "(Total): " << amountSatisfiedrecords << endl;;
    }
    void findLastToday(Record *myRecord, int amountRecords){
        time_t timeSmax = time(0) , timeNow = time(0), currentS, maxS;
        int pos;
        struct tm* conditionalToday{0};
        conditionalToday = localtime(&timeSmax);
        conditionalToday -> tm_min = 59;
        conditionalToday -> tm_hour = 23;
        conditionalToday -> tm_sec = 59;
        timeSmax = mktime(conditionalToday);
        for(int m = 0; m < amountRecords; m++){
            if(myRecord[m].timeS > timeNow && myRecord[m].timeS < timeSmax){
                currentS = myRecord[m].timeS;
                if(currentS > maxS){
                    maxS = currentS;
                }
            }
        }
        for(int m = 0; m < amountRecords; m++){
        if(myRecord[m].timeS == maxS){
            cout<<"The record:" << endl;
            cout<<myRecord[m].date;
            cout<<myRecord[m].mode;
            cout<<myRecord[m].temperature;
            pos = 1;
        }
        }
        if(!pos)
        cout << "No such records" << endl;
     }
    void sortByDate(Record* myRecords, int amountRecords , string myPath){
        int pos, lengthMin;
        pos = myPath.rfind('\\') + 1;
        if(pos == -1)
        pos = myPath.rfind('/') + 1;
        lengthMin = myPath.size() - pos;
        string Path = myPath, currentPath , date = myRecords[0].date, currentDate , currentMinutes;
        Path = Path.erase(pos, lengthMin);
        cout << "*The files are created in: " << Path << endl;
        date.erase(0 , 5);
        date.erase(10  , 7);
        currentPath = Path + date + ".txt";
        FILE* myFile = fopen(&currentPath[0] , "w");
        for(int m = 0; m < amountRecords; m++){
            currentDate = myRecords[m].date;
            currentDate.erase(0  , 5);
            currentDate.erase(10  , 7);
            if(currentDate == date){
                currentMinutes = myRecords[m].date;
                currentMinutes.erase(0,16);
                fputs(&currentMinutes[0], myFile);
                fputs(&myRecords[m].mode[0], myFile);
                fputs(&myRecords[m].temperature[0], myFile);
            }
            else{
                fclose(myFile);
                date = currentDate;
                currentPath = Path + date + ".txt";
                myFile = fopen(&currentPath[0] , "w");
                currentMinutes = myRecords[m].date;
                currentMinutes.erase(0,16);
                fputs(&currentMinutes[0], myFile);
                fputs(&myRecords[m].mode[0], myFile);
                fputs(&myRecords[m].temperature[0], myFile);
            }
        }
        fclose(myFile);
    }
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    Иван Соломенников, там все функции есть просто из-за ограничения коментов несколько функций пришлось удалить
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    //rgzHeader.h
    #ifndef RGZHEADER_H_INCLUDED
    #define RGZHEADER_H_INCLUDED
    namespace mySpace
    {
    
    struct Record{
    std::string date;
    std::string mode;
    std::string temperature;
    time_t timeS;
    };
    
    void findAmountnextMon(Record* , int);
    void showMinutestoExecution(Record*, int);
    void showRecordsbyDate(Record*, int);
    void showMyrecords(Record*, int);
    void findLastToday(Record*, int);
    void sortByDate(Record* , int , std::string);
    void editRecords(Record* , int , std::string);
    void sortMerge(Record * , int );
    Record* addRecord(std::string, Record*, int* );
    time_t to_timet(std::string);
    }
    #endif // RGZHEADER_H_INCLUDED
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    Иван Соломенников,
    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <time.h>
    #include "rgzHeader.h"
    using namespace std;
    int main(){
        using namespace mySpace;
        int choosenOperation, amountRecords = 0;
        Record* myRecords = new Record[1];
        string myPath;
        FILE* myFile;
        cout << "Before the start enter a path to the file(Max 150 symbols): ";
        getline(cin , myPath);
        if(myFile = fopen(&myPath[0] , "r")){
            char myStr[50];
            Record *oldRef;
            Record reRecord;
            cout << "*The file successfully found*" << endl;
            while(fgets(myStr, 50 ,myFile)){
                reRecord.date = myStr;
                reRecord.timeS = to_timet(myStr);
                fgets(myStr, 50 ,myFile);
                reRecord.mode = myStr;
                fgets(myStr, 50 ,myFile);
                reRecord.temperature = myStr;
                oldRef = myRecords;
                myRecords = new Record[amountRecords + 1];
                myRecords[amountRecords] = reRecord;
                for(int m = 0; m < amountRecords; m++)
                myRecords[m] = oldRef[m];
                amountRecords += 1;
                delete[] oldRef;
            }
            sortMerge(myRecords, amountRecords);
        }
        else{
            cout << "We did not find the file" <<  endl;
            cout << "Do you want to create it?(0 - Yes, 1 - No)." << endl;
            cin >> choosenOperation;
            if(choosenOperation)
                cout << "Sorry :( Check the path." << endl;
            else{
                myFile = fopen(&myPath[0] , "w");
                cout << "*The file successfully created*" << endl;
            }
        }
        fclose(myFile);
        while(1){
            cout << "                                         *|||||*- - -*|||||*- - -*|||||*" << endl;
            cout << "                                   *|||||*                             *|||||*" << endl;
            cout << "                                   *|||||*  WELCOME TO THE SMARTHOUSE  *|||||*" << endl;
            cout << "                                   *|||||*                             *|||||*" << endl;
            cout << "                                         *|||||*- - -*|||||*- - -*|||||*" << endl;
            cout << "NOW YOU ARE IN THE |MAIN MENU|" << endl;
            cout << "Please, choose the operation you wanted to do :)" << endl;
            cout << "Enter: 0 - to add a new record \n       1 - to show the records \n       2 - to edit the records" << endl;
            cout << "       5 - exit\n       3 - to sort by dates in files\n       4 - to find the last record on today" << endl;
            cout << "       6 - to count amount records of next month\n       7 - to filter out by date\n       8 - to show minutes to execution" << endl;
            cout << "Enter: ";
            cin >> choosenOperation;
            if(choosenOperation == 0)
                myRecords = addRecord(myPath , myRecords , &amountRecords);
            else if(choosenOperation == 1)
                showMyrecords(myRecords , amountRecords);
            else if(choosenOperation == 2)
                editRecords(myRecords, amountRecords , myPath);
            else if(choosenOperation == 3)
                sortByDate(myRecords , amountRecords , myPath);
            else if(choosenOperation == 4)
                findLastToday(myRecords, amountRecords);
            else if(choosenOperation == 6)
                findAmountnextMon(myRecords, amountRecords);
            else if(choosenOperation == 7)
                showRecordsbyDate(myRecords, amountRecords);
            else if(choosenOperation == 8)
                showMinutestoExecution(myRecords , amountRecords);
            else if(choosenOperation == 5){
                cout << "THANK YOU (^-^)" << endl;
                break;
            }
        }
        delete[] myRecords;
    }
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    EGGOFFOX, там ещё
    #include "rgzHeader.h"
    и все функции , без структуры Record
    в
    namespace mySpace
    {
    .....
    }
    Структура Record в файле rgzHeader.h как на первой картинке , ничего не поменял там кроме std::string
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <time.h>
    
    using namespace std;
    
    struct Record{
        string date;
        string mode;
        string temperature;
        time_t timeS;
    };
    
    time_t to_timet(string currentDate){
        string sConverter = "";
        struct tm currentTime{0};
        currentTime.tm_year = stoi(sConverter + currentDate[11] + currentDate[12]+ currentDate[13] + currentDate[14]) - 1900;
        if(currentDate[5] != '0')
        currentTime.tm_mday = stoi(sConverter + currentDate[5] + currentDate[6]);
        else
        currentTime.tm_mday = stoi(sConverter + currentDate[6]);
        if(currentDate[8] != '0')
        currentTime.tm_mon = stoi(sConverter + currentDate[8] + currentDate[9]) - 1;
        else
        currentTime.tm_mon = stoi(sConverter + currentDate[9]) - 1;
        if(currentDate[16] != '0')
        currentTime.tm_hour = stoi(sConverter + currentDate[16] + currentDate[17]);
        else
        currentTime.tm_hour = stoi(sConverter + currentDate[17]);
        if(currentDate[19] != '0')
        currentTime.tm_min = stoi(sConverter + currentDate[19] + currentDate[20]);
        else
        currentTime.tm_min = stoi(sConverter + currentDate[20]);
        return mktime(&currentTime);
    }
    void sortMerge(Record *myRecords , int sizeMas){
        Record timedValue;
        for(int m = 0; m < sizeMas - 1; m++){
            for(int n = 1 + m; n < sizeMas ; n++)
            if(myRecords[m].timeS > myRecords[n].timeS){
                timedValue = myRecords[m];
                myRecords[m]= myRecords[n];
                myRecords[n] = timedValue;
            }
        }
    }
    void reWriteFile(Record *myMas , int amountRecords , string myPath){
        FILE * myFile = fopen(&myPath[0] , "w");
        for(int m = 0; m < amountRecords; m++){
            fputs(&myMas[m].date[0], myFile);
            fputs(&myMas[m].mode[0], myFile);
            fputs(&myMas[m].temperature[0], myFile);
        }
        fclose(myFile);
    }
    void editRecords(Record *myRecords , int amountRecords , string myPath){
        string  fieldToedit, date , valueToexchange , sConverter;
        int choosenOperation, dateToedit;
        showMyrecords(myRecords, amountRecords);
        cout << "NOW YOU ARE IN THE |EDITING OPERATION|" << endl;
        cout << "Enter the record's number to edit the record. For saving enter -1, you will be returned in the main menu" << endl;
        while(1){
            cout << "Number to edit: ";
            cin >> dateToedit;
            if(dateToedit == -1)
                break;
                    cout << "Enter the field you want to edit(mode, temperature, time, date): ";
                    cin >> fieldToedit;
                    cout << "Enter the value you want to exchange: ";
                    cin >> valueToexchange;
                    if(fieldToedit == "mode")
                        myRecords[dateToedit].mode = "Mode:" + valueToexchange + '\n';
                    else if(fieldToedit == "date"){
                        myRecords[dateToedit].date = "Date(" + valueToexchange + myRecords[dateToedit].date.erase(0 , 15);
                        myRecords[dateToedit].timeS = to_timet(myRecords[dateToedit].date);
                        }
                    else if(fieldToedit == "time"){
                        myRecords[dateToedit].date = myRecords[dateToedit].date.erase(16,6) + valueToexchange + '\n';
                        myRecords[dateToedit].timeS = to_timet(myRecords[dateToedit].date);
                    }
                    else if(fieldToedit == "temperature")
                        myRecords[dateToedit].temperature = "Temperature:" + valueToexchange + '\n';
                    cout << "(Edited)" << endl;
                    cout << "_____________________"<< endl;
                    cout << myRecords[dateToedit].date;
                    cout << myRecords[dateToedit].mode;
                    cout << myRecords[dateToedit].temperature;
                    cout << endl;
                }
        cout << "Do you want to sort the file after editing?(0 - No, 1 - Yes)."<< endl;
        cin >> choosenOperation;
        if(choosenOperation){
            sortMerge(myRecords,amountRecords);
            reWriteFile(myRecords , amountRecords, myPath);
        }
        else{
            reWriteFile(myRecords , amountRecords, myPath);
            sortMerge(myRecords ,amountRecords);
        }
    }
    Record* addRecord(string myPath, Record *myRecords , int *amountRecords){
        FILE* myFile = fopen(&myPath[0] , "a");
        int amountAdd , minPosition, minPos = 0;;
        Record currentRecord;
        Record *oldRef;
        string time;
        cout << "NOW YOU ARE IN THE |ADDING OPERATION|" << endl;
        cout << "How many records you want to add?"<<endl;
        cout << "Enter: ";
        cin >> amountAdd;
        cout << "--Example for adding--" << endl;
        cout << "Date: 02.09.2020" << endl;
        cout << "Time: 04:45" << endl;
        cout << "Mode: Heating(for ex. Freezing)" << endl;
        cout << "Temperature of oxe(C): 45.6" << endl;
        for(int m = 0; m < amountAdd; m++){
            cout << "---Your Form---" <<endl;
            cout << "Date: ";
            cin >> currentRecord.date;
            cout << "Time: ";
            cin >> time;
            currentRecord.date = "Date(" + currentRecord.date + ")" + time + '\n';
            currentRecord.timeS = to_timet(currentRecord.date);
            fputs(&currentRecord.date[0],myFile);
            cout << "Mode: ";
            cin >> currentRecord.mode;
            currentRecord.mode = "Mode:" + currentRecord.mode + '\n';
            fputs(&currentRecord.mode[0],myFile);
            cout << "Temperature of oxe(C): ";
            cin >> currentRecord.temperature;
            currentRecord.temperature = "Temperature:" + currentRecord.temperature + '\n';
            fputs(&currentRecord.temperature[0],myFile);
            for(int m = 0; m < *amountRecords; m++){
                if(currentRecord.timeS >= myRecords[m].timeS){
                    if(m + 1 != *amountRecords)
                    continue;
                    else
                    minPos = m + 1;
                    }
                    else{
                    minPos= m;
                    break;
                }
                }
                oldRef = myRecords;
                myRecords = new Record[*amountRecords + 1];
                myRecords[minPos] = currentRecord;
                for(int m = 0; m < minPos; m++)
                    myRecords[m] = oldRef[m];
                for(int m = minPos; m < *amountRecords; m++)
                    myRecords[m + 1] = oldRef[m];
                delete[] oldRef;
                *amountRecords += 1;
        }
        fclose(myFile);
        return myRecords;
    
    }
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    Иван Соломенников,
    //header.h
    #ifndef RGZHEADER_H_INCLUDED
    #define RGZHEADER_H_INCLUDED
    namespace mySpace
    {

    struct Record{
    std::string date;
    std::string mode;
    std::string temperature;
    time_t timeS;
    };

    void findAmountnextMon(Record* , int);
    void showMinutestoExecution(Record*, int);
    void showRecordsbyDate(Record*, int);
    void showMyrecords(Record*, int);
    void findLastToday(Record*, int);
    void sortByDate(Record* , int , std::string);
    void editRecords(Record* , int , std::string);
    void sortMerge(Record * , int );
    Record* addRecord(std::string, Record*, int* );
    time_t to_timet(std::string);
    }
    #endif // RGZHEADER_H_INCLUDED
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    Иван Соломенников,
    //fuctions.cp
    #include
    #include
    #include
    #include
    #include "rgzHeader.h"

    namespace mySpace
    {
    void showMinutestoExecution(Record * myRecords , int amountRecords){
    time_t currentS , nowS = time(0);
    for(int m = 0; m < amountRecords; m++){
    currentS = myRecords[m].timeS;
    if(currentS > nowS){
    cout <<"Remain about: " <<(currentS - nowS)/60 <<" minute(s)"<< endl;
    cout << myRecords[m].mode;
    cout << myRecords[m].temperature;
    cout << endl;
    }
    }
    }
    void showRecordsbyDate(Record * myRecords , int amountRecords){
    string conditionalDate , currentDate;
    cout << "NOW YOU ARE IN THE |FILTER OUT BY DATE OPERATION|" << endl;
    cout << "Enter the date for filter: ";
    cin >> conditionalDate;
    cout << "Your records: " << endl;
    for(int m = 0; m < amountRecords; m++){
    currentDate = myRecords[m].date;
    currentDate.erase(0 , 5);
    currentDate.erase(10 , 7);
    if(currentDate == conditionalDate){
    cout << "Record: "<< m << endl;
    cout << "_____________________"<< endl;
    cout << myRecords[m].date;
    cout << myRecords[m].mode;
    cout << myRecords[m].temperature;
    cout << endl;
    }
    }
    }
    void showMyrecords(Record * myRecords , int amountRecords){
    cout << "--Current Records--" << endl;
    for(int m = 0; m < amountRecords; m++){
    cout << "Record: "<< m << endl;
    cout << "_____________________"<< endl;
    cout << myRecords[m].date;
    cout << myRecords[m].mode;
    cout << myRecords[m].temperature;
    cout << endl;
    }
    cout << "(Total): " << amountRecords < }
    void findAmountnextMon(Record* myRecords, int amountRecords){
    string conditionalMode , currentMode;
    time_t timeSmax = time(0) , timeSmin;
    int amountSatisfiedrecords = 0;
    struct tm* conditionalToday{0};
    cout << "NOW YOU ARE IN THE |FILTER OUT NEXT MONTH OPERATION|" << endl;
    cout << "Enter the mode for filter: ";
    cin >> conditionalMode;
    conditionalToday = localtime(&timeSmax);
    for(int m =0; m<2; m++){
    if(conditionalToday -> tm_mon != 11)
    conditionalToday -> tm_mon += 1;
    else{
    conditionalToday -> tm_mon = 0;
    conditionalToday -> tm_year += 1;
    }
    conditionalToday -> tm_min = 0;
    conditionalToday -> tm_hour = 0;
    conditionalToday -> tm_mday = 1;
    conditionalToday -> tm_sec = 0;
    if(m == 0)
    timeSmin = mktime(conditionalToday);
    if(m == 1)
    timeSmax = mktime(conditionalToday);
    }
    cout << "Your records: " << endl;
    for(int m = 0; m < amountRecords; m++){
    currentMode = myRecords[m].mode;
    currentMode.erase(0,5);
    currentMode.erase(currentMode.size() - 1,1);
    if(timeSmin < myRecords[m].timeS && timeSmax > myRecords[m].timeS && conditionalMode == currentMode){
    cout << "Record: "<< m << endl;
    cout << "_____________________"<< endl;
    cout << myRecords[m].date;
    cout << myRecords[m].mode;
    cout << myRecords[m].temperature;
    cout << endl;
    amountSatisfiedrecords += 1;
    }
    }
    cout << "(Total): " << amountSatisfiedrecords << endl;;
    }
    void findLastToday(Record *myRecord, int amountRecords){
    time_t timeSmax = time(0) , timeNow = time(0), currentS, maxS;
    int pos;
    struct tm* conditionalToday{0};
    conditionalToday = localtime(&timeSmax);
    conditionalToday -> tm_min = 59;
    conditionalToday -> tm_hour = 23;
    conditionalToday -> tm_sec = 59;
    timeSmax = mktime(conditionalToday);
    for(int m = 0; m < amountRecords; m++){
    if(myRecord[m].timeS > timeNow && myRecord[m].timeS < timeSmax){
    currentS = myRecord[m].timeS;
    if(currentS > maxS){
    maxS = currentS;
    }
    }
    }
    for(int m = 0; m < amountRecords; m++){
    if(myRecord[m].timeS == maxS){
    cout<<"The record:" << endl;
    cout< cout< cout< pos = 1;
    }
    }
    if(!pos)
    cout << "No such records" << endl;
    }
    void sortByDate(Record* myRecords, int amountRecords , string myPath){
    int pos, lengthMin;
    pos = myPath.rfind('\\') + 1;
    if(pos == -1)
    pos = myPath.rfind('/') + 1;
    lengthMin = myPath.size() - pos;
    string Path = myPath, currentPath , date = myRecords[0].date, currentDate , currentMinutes;
    Path = Path.erase(pos, lengthMin);
    cout << "*The files are created in: " << Path << endl;
    date.erase(0 , 5);
    date.erase(10 , 7);
    currentPath = Path + date + ".txt";
    FILE* myFile = fopen(&currentPath[0] , "w");
    for(int m = 0; m < amountRecords; m++){
    currentDate = myRecords[m].date;
    currentDate.erase(0 , 5);
    currentDate.erase(10 , 7);
    if(currentDate == date){
    currentMinutes = myRecords[m].date;
    currentMinutes.erase(0,16);
    fputs(&currentMinutes[0], myFile);
    fputs(&myRecords[m].mode[0], myFile);
    fputs(&myRecords[m].temperature[0], myFile);
    }
    else{
    fclose(myFile);
    date = currentDate;
    currentPath = Path + date + ".txt";
    myFile = fopen(&currentPath[0] , "w");
    currentMinutes = myRecords[m].date;
    currentMinutes.erase(0,16);
    fputs(&currentMinutes[0], myFile);
    fputs(&myRecords[m].mode[0], myFile);
    fputs(&myRecords[m].temperature[0], myFile);
    }
    }
    fclose(myFile);
    }
    time_t to_timet(string currentDate){
    string sConverter = "";
    struct tm currentTime{0};
    currentTime.tm_year = stoi(sConverter + currentDate[11] + currentDate[12]+ currentDate[13] + currentDate[14]) - 1900;
    if(currentDate[5] != '0')
    currentTime.tm_mday = stoi(sConverter + currentDate[5] + currentDate[6]);
    else
    currentTime.tm_mday = stoi(sConverter + currentDate[6]);
    if(currentDate[8] != '0')
    currentTime.tm_mon = stoi(sConverter + currentDate[8] + currentDate[9]) - 1;
    else
    currentTime.tm_mon = stoi(sConverter + currentDate[9]) - 1;
    if(currentDate[16] != '0')
    currentTime.tm_hour = stoi(sConverter + currentDate[16] + currentDate[17]);
    else
    currentTime.tm_hour = stoi(sConverter + currentDate[17]);
    if(currentDate[19] != '0')
    currentTime.tm_min = stoi(sConverter + currentDate[19] + currentDate[20]);
    else
    currentTime.tm_min = stoi(sConverter + currentDate[20]);
    return mktime(&currentTime);
    }
    void sortMerge(Record *myRecords , int sizeMas){
    Record timedValue;
    for(int m = 0; m < sizeMas - 1; m++){
    for(int n = 1 + m; n < sizeMas ; n++)
    if(myRecords[m].timeS > myRecords[n].timeS){
    timedValue = myRecords[m];
    myRecords[m]= myRecords[n];
    myRecords[n] = timedValue;
    }
    }
    }
    void reWriteFile(Record *myMas , int amountRecords , string myPath){
    FILE * myFile = fopen(&myPath[0] , "w");
    for(int m = 0; m < amountRecords; m++){
    fputs(&myMas[m].date[0], myFile);
    fputs(&myMas[m].mode[0], myFile);
    fputs(&myMas[m].temperature[0], myFile);
    }
    fclose(myFile);
    }
    //editRecord
    //addRecord
    fclose(myFile);
    return myRecords;

    }
    }
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    //mainfile.cpp
    #include
    #include
    #include
    #include
    #include "rgzHeader.h"

    using namespace std;

    int main(){
    using namespace mySpace;
    int choosenOperation, amountRecords = 0;
    Record* myRecords = new Record[1];
    string myPath;
    FILE* myFile;
    cout << "Before the start enter a path to the file(Max 150 symbols): ";
    getline(cin , myPath);
    if(myFile = fopen(&myPath[0] , "r")){
    char myStr[50];
    Record *oldRef;
    Record reRecord;
    cout << "*The file successfully found*" << endl;
    while(fgets(myStr, 50 ,myFile)){
    reRecord.date = myStr;
    reRecord.timeS = to_timet(myStr);
    fgets(myStr, 50 ,myFile);
    reRecord.mode = myStr;
    fgets(myStr, 50 ,myFile);
    reRecord.temperature = myStr;
    oldRef = myRecords;
    myRecords = new Record[amountRecords + 1];
    myRecords[amountRecords] = reRecord;
    for(int m = 0; m < amountRecords; m++)
    myRecords[m] = oldRef[m];
    amountRecords += 1;
    delete[] oldRef;
    }
    sortMerge(myRecords, amountRecords);
    }
    else{
    cout << "We did not find the file" << endl;
    cout << "Do you want to create it?(0 - Yes, 1 - No)." << endl;
    cin >> choosenOperation;
    if(choosenOperation){
    cout << "Sorry :( Check the path." << endl;
    return 0;
    }
    else{
    myFile = fopen(&myPath[0] , "w");
    cout << "*The file successfully created*" << endl;
    }
    }
    fclose(myFile);
    while(1){
    cout << " *|||||*- - -*|||||*- - -*|||||*" << endl;
    cout << " *|||||* *|||||*" << endl;
    cout << " *|||||* WELCOME TO THE SMARTHOUSE *|||||*" << endl;
    cout << " *|||||* *|||||*" << endl;
    cout << " *|||||*- - -*|||||*- - -*|||||*" << endl;
    cout << "NOW YOU ARE IN THE |MAIN MENU|" << endl;
    cout << "Please, choose the operation you wanted to do :)" << endl;
    cout << "Enter: 0 - to add a new record \n 1 - to show the records \n 2 - to edit the records" << endl;
    cout << " 5 - exit\n 3 - to sort by dates in files\n 4 - to find the last record on today" << endl;
    cout << " 6 - to count amount records of next month\n 7 - to filter out by date\n 8 - to show minutes to execution" << endl;
    cout << "Enter: ";
    cin >> choosenOperation;
    if(choosenOperation == 0)
    myRecords = addRecord(myPath , myRecords , &amountRecords);
    else if(choosenOperation == 1)
    showMyrecords(myRecords , amountRecords);
    else if(choosenOperation == 2)
    editRecords(myRecords, amountRecords , myPath);
    else if(choosenOperation == 3)
    sortByDate(myRecords , amountRecords , myPath);
    else if(choosenOperation == 4)
    findLastToday(myRecords, amountRecords);
    else if(choosenOperation == 6)
    findAmountnextMon(myRecords, amountRecords);
    else if(choosenOperation == 7)
    showRecordsbyDate(myRecords, amountRecords);
    else if(choosenOperation == 8)
    showMinutestoExecution(myRecords , amountRecords);
    else if(choosenOperation == 5){
    cout << "THANK YOU (^-^)" << endl;
    break;
    }
    }
    delete[] myRecords;
    }
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    Иван Соломенников,
    Да , только там вообще все функции с такой ошибкой :(
  • Почему тут string не видит, когда пытаюсь подключить свой модуль?

    @EGGOFFOX Автор вопроса
    Помогло только теперь
    undefined reference to" mySpace::fun" появились
  • Как поменять имя пользователя, Windows 10 Home?

    @EGGOFFOX Автор вопроса
    Возвращение компьютера в исходное состояние , предложит мне поменять имя пользователя , вот такое я предполагал :)
  • Что такое self в Python?

    @EGGOFFOX
    self помогает методу определить к какому объекту он относиться ?