Nie dałeś dyrektywny do użycia pliku nagłówkowego string (lub string.h w starszych standardach), a więc obiekt std::string, nie mógł zostać znaleziony.
Nie które kompilatory mogą się przyczepić do poniższego wyrażenia:
cout << "Suma = " << x + y;
Kompilator może uznać, że + y to przeciążony operator klasy std::cout. Może to zinterpretować w następujący sposób:
cout << "Suma = " /* Wypisz ciąg znaków "Suma = " na standardowe wyjście,
gdyż odnalazłem metodę operator<<(const char*) co zgadza się
z deklaracją w nagłówku iostream */
/* cout */ << x /* Wypisz zmienną typu float x na standardowe wyjście,
gdyż odnalazłem metodę operator<<(float) co zgadza się
z deklaracją w nagłówku iostream */
/* cout */ + y; /* Co to jest? Nie odnalazłem metody operator+(float)
w deklaracji klasy obiektu std::cout, wyświetlam błąd */
Dlatego, aby wykonywać działania, a potem natychamist wypisać je na standardowe wyjście, należy stosować operator (), który zwiększa priorytet wyrażenia znajdującego się pomiędzy nawiasami.
/* cout */ << (x + y)
Najpierw wykona się działanie w nawiasach, następnie wypisze się wynik tego działania na standardowe wyjście.
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <conio.h>
using namespace std;
int main()
{ float x, y = 0;
int wybor = 0;
string login, haslo;
cout << "Witaj w M.S.C.\n";
cout << "Login: ";
cin >> login;
cout << "Haslo: ";
cin >> haslo;
system("cls");
if (login != "M.S.C." || haslo != "rotkiw02")
{ cout << "Wpisales bledny login lub haslo\n";
exit(0); }
cout << "Liczba 1: ";
cin >> x;
cout << "Liczba 2: ";
cin >> y;
cout << "1. Dodawanie\n";
cout << "2. Odejmowanie\n";
cout << "3. Mnozenie\n";
cout << "4. Dzielenie\n";
cout << "5. Wyjdz\n";
cout << "Wybor: ";
cin >> wybor;
system("cls");
switch (wybor)
{ case 1:
cout << "Suma = " << (x + y);
break;
case 2:
cout << "Roznica = " << (x - y);
break;
case 3:
cout << "Iloczyn = " << (x * y);
break;
case 4:
if (!y) cout << "Nie mozna dzielic przez zero";
else cout << "Iloraz = " << (x / y);
break;
default:
cout << "Nie wlasciwa opcja"; }
cout << endl;
getch(); }
Drugie już sobie napewno naprawisz samodzielnie ;)