0

こんにちは、私は学校の課題に取り組んでいますが、いくつかの問題に直面しています。私は C++ の初心者であり、あまり慣れていません。これまでのサポートには本当に感謝していますが、31 行目から 35 行目でまだエラーが発生しています。

error C2228: left of '.substr' must have class/struct/union

error C2228: left of '.c_str' must have class/struct/union

これが私の課題です。ある駐車場では、3 時間までの駐車に最低料金 $2.00 を請求します。ガレージは、3 時間を超える各時間またはその一部に対して、1 時間あたり 0.50 ドルの追加料金を請求します。任意の 24 時間の最大料金は $10.00 です。車を 24 時間以上駐車する人は、1 日あたり 8.00 ドルを支払います。駐車料金を計算して出力するプログラムを作成します。プログラムへの入力は、車が駐車場に入った日時と、同じ車が駐車場から出た日時です。両方の入力の形式は次のとおりです。 YY/MM/DD hh:mm

#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <cmath>
#include <algorithm>
#include <sstream>
using namespace std;

int dateStr;
int parseDate( std::string dateStr );

int main ()

{
int enter_date;
int enter_time;
int exit_date;
int exit_time;
cout << "Please enter the date and time the car is entering "<< endl
    << "the parking garage in the following format: YY/MM/DD hh:mm"<< endl;
 cin >> enter_date >> enter_time;


cout<< "Please enter the date and time the car is exiting "<< endl
    << "the parking garage in the following format: YY/MM/DD hh:mm"<< endl;
cin >> exit_date >> exit_time;

{
    // Format: YY/MM/DD hh:mm
    int year  = atoi( dateStr.substr( 0, 2 ).c_str() );
    int month = atoi( dateStr.substr( 3, 2 ).c_str() );
    int day   = atoi( dateStr.substr( 6, 2 ).c_str() );
    int hour  = atoi( dateStr.substr( 9, 2 ).c_str() );
    int min   = atoi( dateStr.substr( 12, 2 ).c_str() );

    // Now calculate no. of mins and return this
    int totalMins = 0;
    totalMins += ( year * 365 * 24 * 60 ); // Warning: may not be accurate enough
    totalMins += ( month * 30 * 24 * 60 ); // in terms of leap years and the fact
    totalMins += ( day * 24 * 60 );        // that some months have 31 days
    totalMins += ( hour * 60 );
    totalMins += ( min );

    return totalMins;
}

return 0;
}
4

1 に答える 1

2

として宣言dateStrしましたint。それは文字列であるはずですか?おそらくそれも初期化する必要があります。

于 2012-04-07T05:03:05.950 に答える