Witam
Rozwiązując zadanie napotkałem na błąd podczas kompilacji w dość nietypowym miejscu ("obcięcie z "char" do "bool"" oraz "lewy operand musi być wartością l") :
#include "stack.h"
#include <cstdlib>
#include <cctype>
#include <iostream>
int main()
{
Stack st; // tworzy pusty stos
char sign;
unsigned long po;
std::cout << "Nacisnij A, aby dodac element. D, aby usunac element. E, aby zakonczyc.\n";
while (std::cin >> sign && toupper(sign) = 'E')
{
while (std::cin.get() != '\n')
continue;
if (!isalpha(sign))
{
std::cout << "Podany znak nie jest litera!\n";
continue;
}
switch (sign)
{
case 'A':
case 'a':
std::cout << "Podaj nr nowej deklaracji: ";
std::cin >> po;
if (st.is_full())
std::cout << "Stos jest pełny!\n";
else
st.push(po); // dodanie elementu do stosu
break;
case 'D':
case 'd':
if (st.is_empty())
std::cout << "Stos jest pusty!\n";
else
{
st.pop(po); // zdejęcie elementu ze stosu
std::cout << "Deklaracja nr " << po << ", zostala zdjeta.\n";
}
break;
} // switch
std::cout << "Nacisnij A, aby dodac element. D, aby usunac element. E, aby zakonczyc.\n";
} // while
std::cout << "Zakonczenie programu!\n";
system("pause");
return 0;
}
Błędy dotyczą linii:
while (std::cin >> sign && toupper(sign) = 'E')
a dokładnie std::cin.
Proszę o wytłumaczenie co oznaczają te błędy i dlaczego błąd dotyczący l wartości odnosi się do std::cin ?