Тема: синтаксис або що?
// times1.cpp
// программа перевода времени в 24-часовом написании
// в 12-часовое
#include <iostream>
#include <string>
using namespace std;
///////////////////////////////////////////////////////////
class time12
{
private:
bool pm;
int hrs;
int mins;
public:
time12 ( ) : pm ( true ), hrs ( 0 ), mins ( 0 )
{ }
time12 ( bool ap, int h, int m ) : pm ( ap ), hrs ( h ), mins ( m )
{ }
void display ( ) const
{
cout << hrs << ':';
if ( mins < 10 )
cout << '0';
cout << mins << ' ';
string am_pm = pm ? "p.m." : "a.m.";
cout << am_pm;
}
};
///////////////////////////////////////////////////////////
class time24
{
private:
int hours;
int minutes;
int seconds;
public:
time24 ( ) : hours ( 0 ), minutes ( 0 ), seconds ( 0 )
{ }
time24 ( int h, int m, int s ) : hours ( h ), minutes ( m ), seconds ( s )
{ }
void display ( ) const
{
if ( hours < 10 ) cout << '0';
cout << hours << ':';
if ( minutes < 10 ) cout << '0';
cout << minutes << ':';
if ( seconds < 10 ) cout << '0';
cout << seconds;
}
operator time12 ( ) const;
};
///////////////////////////////////////////////////////////
time24::operator time12 ( ) const
{
int hrs24 = hours;
bool pm = hours < 12 ? false : true;
int roundMins = seconds < 30 ? minutes : minutes + 1;
if ( roundMins == 60 )
{
roundMins = 0;
++hrs24;
if ( hrs24 == 12 ||hrs24 == 24 )
pm = ( pm == true ) ? false : true;
}
int hrs12 = ( hrs24 < 13 ) ? hrs24 : hrs24 – 12;
if ( hrs12 == 0 )
{
hrs12 = 12;
pm = false;
}
return time12 ( pm, hrs12, roundMins );
}
///////////////////////////////////////////////////////////
int main ( )
{
int h, m, s;
while ( true )
{
cout << "Введите время в 24-часовом формате: \n";
cout << " Часы (от 0 до 23): "; cin >> h;
if ( h > 23 )
return ( 1 );
cout << " Минуты: "; cin >> m;
cout << " Секунды: "; cin >> s;
time24 t24 ( h, m, s );
cout << "Исходное время: ";
t24.display ( );
time12 t12 = t24;
cout << "\nВ 12-часовом формате: ";
t12.display ( );
cout << "\n\n";
}
return 0;
}
Здрастуйте всім! Якась помилка в книзі. Я синтаксичної помилки як ніби-то не бачу.
Абсолютно зрозумілий зміст виразу в цьому рядку, і так воно могло б бути.
Це все-таки синтаксис або що? Як бути?
Впевнений, цє компілятор саме у цьому місці не розуміє – 12, тільки не зрозуміло чому.
Не бажаю ускладнювати програму, переписуючі строку з усякими іф-єлсє... Що ж краще робити?
Офигеть!! Раніше волало що в рядку int hrs12 = ( hrs24 < 13 ) ? hrs24 : hrs24 – 12; не знайдена кома з крапкою, перед знаком мінуса, а
тут чи то- скомпілювалося, але помилки і я такє першого разу бачу!!
Ошибка 1 error MSB6006: "CL.exe" завершилась с кодом 2. C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets 147 6 TIMES1
AcceptableNonZeroExitCodes ="%(ClCompile.AcceptableNonZeroExitCodes)"
YieldDuringToolExecution ="$(ClYieldDuringToolExecution)"
>
</CL>
<!-- Rest of the sources -->
<CL Condition="'%(ClCompile.PrecompiledHeader)' != 'Create' and '%(ClCompile.ExcludedFromBuild)'!='true'"
BuildingInIDE ="$(BuildingInsideVisualStudio)"
Sources ="@(ClCompile)"
AdditionalIncludeDirectories ="%(ClCompile.AdditionalIncludeDirectories)"
AdditionalOptions ="%(ClCompile.AdditionalOptions)"
AdditionalUsingDirectories ="%(ClCompile.AdditionalUsingDirectories)"
AssemblerListingLocation ="%(ClCompile.AssemblerListingLocation)"
AssemblerOutput ="%(ClCompile.AssemblerOutput)"
BasicRuntimeChecks ="%(ClCompile.BasicRuntimeChecks)"
BrowseInformation ="%(ClCompile.BrowseInformation)"
BrowseInformationFile ="%(ClCompile.BrowseInformationFile)"
BufferSecurityCheck ="%(ClCompile.BufferSecurityCheck)"