Warunek ze stringiem

0

Dlaczego to nie zadziała?

 #include <iostream>
#include <string>

using namespace std;

int main()
{
	cout<<"Wpisz swoje imie z malych liter, bez polskich znakow...";
	string name;
	cin>>name;
	
	if ( name == mateusz )
	{
		cout<<"Wpisales dobrze";
		}
		
	if (name!=mateusz)
	{
		cout<<"Wpisales zle";
		}
		
	cin.get();
	return 0;
}

W końcu string, to ciąg znaków, np. liter... Dlaczego z liczbami działa, a ze słowami nie?

0

A dlaczego w cout używasz " ... " a potem nagle nie? Dlaczego nie napisałeś po prostu tego tekstu jaki ma się wyświetlić? Napis to napis, czy to cout czy w if. Dodaj " ... ".

0

Nie bardzo rozumiem o co chodzi :/ Zauważyłem błędy w kodzie i poprawiłem. Nie jestem w stanie dostrzec gdzie jeszcze jest jakiś błąd...

#include <iostream>
#include <string>

using namespace std;

int main()
{
	cout<<"Wpisz swoje imie z malych liter, bez polskich znakow...";
	string name;
	cin>>name;
	
	if ( name == "mateusz" );
	{
		cout<<"Wpisales dobrze";
		}
		
	if (name != "mateusz");
	{
		cout<<"Wpisales zle";
		}
		
	cin.get();
	return 0;
} 

Kompiluje normalnie, ale nie działa jak nalezy :(

0
if ( name == "mateusz" );

widzisz średnik na końcu? On sprawia, że cout zawsze się wykona, bo nie należy do ifa.

0

Dziękuję Wam, dobrzy Ludzie! :D

1

I jeszcze wypadałoby żebyś używał

 if(...) 
     Cos;
else
niecos; 

Pisanie na telefonie takich rzeczy jest naprawdę uciążliwe

0

@karolinaa No pewnie chodziło mu o to, że można zapisać:

bool warunek = true;
if (warunek)
	cout << "Prawda" << endl;
else cout << "Falsz" << endl;

zamiast:

bool warunek = true;
if (warunek) {
	cout << "Prawda" << endl;
}
else {
	cout << "Falsz" << endl;
}

że krócej w sensie ;)

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