0

start_dateandを入力/初期化する方法を知りたい(これは、関数 `initializeDate の整数と整数を持つ構造end_date体に由来します。初期化できたら、printout メンバーで同じロジックを使用できると思います関数。Datemonth dayyear

struct Date
{
    int month;
    int day;
    int year;
};


void initializeDate(Date &d)
{
    cout<<"Please enter the month"<<endl;
    cin>>start.month;
    cout<<"Please enter the day"<<endl;
    cin>>start.day;
    cout<<"Please enter the year"<<endl;
    cin>>start.year;
    string dummy;
    getline(cin, dummy);
}

編集:私が得ているエラーは、「開始」がこのスコープで宣言されていないことです。

4

3 に答える 3

1

これは非常に基本的なことです。C++ に関する優れた本を読んでください。あなたが努力したので、以下に投稿します:)

void Information::initializeDate(Date &d)    //comes from the Information class.
{
    // Commented as part of question change!  
    // Date d;     // Guessing that the structure is the private member of the class.
    cout<<"Please enter the month"<<endl;
    cin>>d.month;
    cout<<"Please enter the day"<<endl;
    cin>>d.day;
    cout<<"Please enter the year"<<endl;
    cin>>d.year;
    string dummy;
    getline(cin, dummy);
}

**問題の変更に従ってコードを編集しました

于 2013-03-11T04:19:13.893 に答える
1

サンプルコードを更新し続けているようです。現在のリビジョンに基づいて、これがあなたが望むものだと思います:

#include <iostream>
using namespace std;

struct Date
{
    int month;
    int day;
    int year;
};


void initializeDate(Date &date)
{
    cout<<"Please enter the month"<<endl;
    cin>>date.month;
    cout<<"Please enter the day"<<endl;
    cin>>date.day;
    cout<<"Please enter the year"<<endl;
    cin>>date.year;
}

int main()
{
  Date start, end;
  initializeDate(start);
  initializeDate(end);
  cout << start.year << "/" << start.month << "/" << start.day << endl;
  cout << end.year << "/"   << end.month   << "/" << end.day << endl;
  return 0;
};
于 2013-03-11T04:21:30.757 に答える
0

わかりました、ここにはいくつかの問題があり、ターゲットにする必要があります。まず、コードを修正するには、エラーは非常に単純です。名前付きの変数startが宣言/定義されたコードのどこにもありません。それで、コンパイラはあなたに何を尋ねていますstart。関数initializeDateに渡した d のメンバーの値を初期化しようとしていると思います。単語のすべての出現箇所を に置き換えるだけでstart、次のdようになります。

void initializeDate(Date &d)
{
    cout<<"Please enter the month"<<endl;
    cin>> d.month;
    cout<<"Please enter the day"<<endl;
    cin>> d.day;
    cout<<"Please enter the year"<<endl;
    cin>> d.year;
    string dummy;
    getline(cin, dummy);
}

さて、これは機能しますが、日付を初期化する最良の方法ではありません。Dateは であるためstruct、コンストラクター メソッドを使用してそのメンバーを初期化できます。これは、次のように記述することで実現されます。

struct Date{
    int day, month, year;
    Date(int, int, int);
    };

Date:: Date(int day, int month, int year){
    this->day = day;
    this->month = month;
    this->year = year;
    }

int main(){
    Date today(11, 3, 2013);
    cout << "today, the date is " << today.day << "-" << today.month << "-" << today.year << endl; 
    return 0;
    }
于 2013-03-11T04:39:50.363 に答える