Терминальная ошибка MacOS: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/istream:1634:1: note: - PullRequest
0 голосов
/ 17 октября 2019

При попытке запустить программу на C ++ возникает ошибка:

#include <iostream>
#include <ctime> //standard c++ library of time.h 
using namespace std; 

class DateCplusplus{
private: 
    int _day, _month, _year; //define variable 
public: 
    void readValues(){
        cout<<"Enter the day value: "; 
        cin>>_day; 
        cout<<"\nEnter the month value: "; 
        cin>>_month; 
        cout>>_year; 
        _year = _year - 1900; 
    }

    int verifyValues(){
        if(_day>=1 && _day <=31 && _month>=1 && _month<= 12){
            return 1; 
        }
        return 0; 
    }

    int compareValues(){
        time_t now = time(0); 
        tm *ltm = localtime(&now); 
        if((_year == ltm -> tm_year) && (_month ==1 +ltm -> tm_mon) && (_day == ltm -> tm_mday)){
            return 1; 
        }
        return 0; 
    }

    int main(){
        DateCplusplus date; 
        date.readValues(); 
        cout<<"\nVerification of day and months values: "<<date.verifyValues()<<"\n"; 
        cout<<"\nComparision of the day, the month and the year with the System current Date: "<<date.compareValues(); 
        return 0; 
    }
};

В терминале отображается сообщение об ошибке: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr / include / c ++ / v1 / istream: 1634: 1: примечание: шаблон кандидата игнорируется: не удалось сопоставить «basic_istream» с оператором «basic_ostream» >> (basic_istream <_CharT, _Traits> & __is, bitset <_Size> & __x)

Можете ли вы помочь мне найти мою ошибку?

Спасибо!

1 Ответ

1 голос
/ 18 октября 2019

Ваша основная функция не может содержать никаких классов, поэтому я извлек вашу основную функцию из класса DateCplusplus, и у вас есть синтаксическая ошибка, что cou >> _ year, это должно быть cout << _ year.И вам нужно определить _CRT_SECURE_NO_WARNINGS верхнюю часть кодаесли вы хотите запустить. Потому что локальное время является небезопасной функцией. </p>

#define _CRT_SECURE_NO_WARNINGS


#include <iostream>
#include <ctime> 

using namespace std;

class DateCplusplus {
private:
    int _day, _month, _year; //define variable 
public:
    void readValues() {
        cout << "Enter the day value: ";
        cin >> _day;
        cout << "\nEnter the month value: ";
        cin >> _month;
        cout << _year;
        _year = _year - 1900;
    }

    int verifyValues() {
        if (_day >= 1 && _day <= 31 && _month >= 1 && _month <= 12) {
            return 1;
        }
        return 0;
    }

    int compareValues() {
        time_t now = time(0);
        tm* ltm = localtime(&now);
        if ((_year == ltm->tm_year) && (_month == 1 + ltm->tm_mon) && (_day == ltm->tm_mday)) {
            return 1;
        }
        return 0;
    }
};



    int main() {
        DateCplusplus date;
        date.readValues();
        cout << "\nVerification of day and months values: " << date.verifyValues() << "\n";
        cout << "\nComparision of the day, the month and the year with the System current Date: " << date.compareValues();
        return 0;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...