Прежде всего cout
, cin
и endl
находятся в пространстве имен std
, поэтому вам нужно либо добавить к ним std::
строк добавления, например using std::cout;
после #include
s.
Что касается вашего кода, член getline
для istream
(тип cin
) требует массив символов, но вы определяете только символ. Я предлагаю не использовать массивы символов, а использовать бесплатную функцию getline
, которая получает поток для чтения в качестве параметра и сохраняет результат в std::string
, что обеспечивает более безопасную и простую обработку. Поскольку вы не использовали <cstring>
и getline
в <string>
, я изменил это #include
.
Также ваш VIP не может сделать что-то полезное. Это три символа в одном, которые не могут работать. Вам нужна строка для этого (двойные кавычки, а не одинарные кавычки).
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <string>
#include <cmath>
using std::cout;
using std::endl;
int main()
{
int istok = 0, zapad = 0, loza = 0, vip = 0, mladi = 0;
cout << "Unesite I za istok, Z za zapad, L za lozu, VIP za VIP (rofl), M za djecu i mlade." << endl;
std::string unos5;
while (unos5 != "K") {
std::getline(std::cin, unos5);
if (unos5 == "I") {
istok++;
}
else if (unos5 == "Z") {
zapad++;
}
else if (unos5 == "L") {
loza++;
}
else if (unos5 == "VIP") {
vip++;
}
else if (unos5 == "M") {
mladi++;
}
/*else if(unos5 != 'I' || 'Z' || 'L' || 'VIP' || 'M'){
cout<<"Unjeli ste krivo! Pokusajte ponovno."<<endl;
cin>>unos5;
}*/
else if (unos5 == "K") {
break;
}
}
cout << "Ukupna zarada od prodanih ulaznica je " << istok * 60 + zapad * 80 + loza * 100 + vip * 500 + mladi * 20 << " kn." << endl;
return 0;
}
Обратите также внимание, что написание endl
приводит к написанию '\ n' и последующему вызову flush()
на выходе поток. Если вам не нужен flush()
, вы должны написать только \ n.