Wyrazenie warunkowe - wynik jest liczbą zamiast łańcuchem

0
 #include <iostream>
#include <windows.h>

using namespace std;


int main()
{
    int wybor;
    cout << "Czy nazywasz sie Tomek, jesli tak wpisz 1, jesli nie wpisz 0\n";
    cin >> wybor;

   cout << (wybor) ? "TAK" : "NIE";

    return 0;
}

Dlaczego nie wyświetla mi TAK lub Nie na końcu, tylko wyświetla liczbę ?

1

Bo powinno być tak:

#include <iostream>
using namespace std;


int main()
{
	int wybor;
	cout << "Czy nazywasz sie Tomek, jesli tak wpisz 1, jesli nie wpisz 0\n";
	cin >> wybor;

	char * fraza = (wybor) ? "TAK" : "NIE";
	cout << fraza << endl;

	return 0;
}

Albo tak:

#include <iostream>
using namespace std;


int main()
{
	int wybor;
	cout << "Czy nazywasz sie Tomek, jesli tak wpisz 1, jesli nie wpisz 0\n";
	cin >> wybor;

	cout << ((wybor) ? "TAK" : "NIE") << endl;
	return 0;
}

PS: Zapomniałem ale naturalnie, tak jak napisał niżej @twonek, chodzi o priorytet operatorów. Poczytaj sobie o tym choćby z wikipedii https://pl.wikipedia.org/wiki/Operator_(programowanie)#Pierwsze.C5.84stwo.2C_priorytet

3
Pijany Szczur napisał(a):

Dlaczego nie wyświetla mi TAK lub Nie na końcu, tylko wyświetla liczbę ?
Bo << ma wyższy priorytet niż ?:, więc wyrażenie jest równoważne:

(cout << (wybor)) ? "TAK" : "NIE";

1 użytkowników online, w tym zalogowanych: 0, gości: 1