• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[C++] Problem z if'em

Object Storage Arubacloud
0 głosów
150 wizyt
pytanie zadane 29 grudnia 2015 w C i C++ przez CIO3KOV Początkujący (440 p.)

Witam mam problem, iż stworzyłem małe menu :

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

using namespace std;
	
string komenda;
void menu()
{
	cout<<"Hackier Tools [Wersja 1.0]"<<endl;
	cout<<"Copyright (c) 2015 cio3kov Corporation. Wszelkie prawa zastrzezone."<<endl<<endl;
	cout<<"Hackier Tools>";
	cin>>komenda;
}

void erro()
{
	cout<<"nie ma takiej komendy!";
}


int main()
{

for(;;)
{
	/*----------------------------------------------*/
	system("COLOR A");
	/*----------------------------------------------*/



	
	menu();




	if(komenda=="/keylogger" || "keylogger")
    	MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );
	else erro();
	
	if(komenda=="/information")
		MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );	
	else erro();
	
	
	
	
	getchar(); 
    system("cls");
}
	return 0;

}


i gdy odpale programik i wpisze /information wyskakują dwa msgbox'y jeden z /keylogger a drugi z /information a powinen tylko z /information

2 odpowiedzi

+2 głosów
odpowiedź 29 grudnia 2015 przez Radfler VIP (101,030 p.)
wybrane 29 grudnia 2015 przez CIO3KOV
 
Najlepsza
komenda=="/keylogger" || "keylogger"

Źle sformułowałeś warunek. Powinieneś porównywać zmienne "osobno":

komenda=="/keylogger" || komeda == "keylogger"

 

komentarz 29 grudnia 2015 przez CIO3KOV Początkujący (440 p.)
dziękuję, a może nie wiesz jeszcze dlaczego gdy wpisuje /information i /keylogger wyskakuje mi oprócz komunikatu wyskakuje mi "nie ma takiej komendy z elsa?
komentarz 29 grudnia 2015 przez taloni Początkujący (250 p.)

ponieważ sprawdzasz czy komenda jest równa /keylogger 

niejest więc pisze ze nie jest potem sprawdza czy jest rowna /information i jest ok

komentarz 29 grudnia 2015 przez taloni Początkujący (250 p.)
napisz to tak

if(komenda=="/keylogger" || "keylogger")

        MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );

    else  if(komenda=="/information")

        MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );

    else erro();
komentarz 29 grudnia 2015 przez Radfler VIP (101,030 p.)

Gdyż jeżeli wpiszesz np. /information to wykona się else z ifa z keyloggerem, czyli wywołanie erro. Najlepszym wyjściem z tej sytuacji jest użycie konstrukcji z else if:

if(komenda == "/keylogger" || komenda == "keylogger") { // Jeżeli ...
  // Akcja dla komendy keylogger
} else if(komenda == "information") { // W innym przypadku jeżeli ...
  // Akcja dla komendy information
} else { // W innym przypadku ...
  // W przeciwnym razie błąd
  erro();
}

 

komentarz 29 grudnia 2015 przez CIO3KOV Początkujący (440 p.)
Dziękuję   ;)
komentarz 29 grudnia 2015 przez Radfler VIP (101,030 p.)
Proszę bardzo! :)
komentarz 29 grudnia 2015 przez CIO3KOV Początkujący (440 p.)
przywrócone 29 grudnia 2015 przez CIO3KOV

A jak chciałem dalej zrobić else if(...)

if(komenda=="/keylogger" || komenda=="keylogger")
	{
    MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );
	}else if(komenda=="/info -computer" || komenda=="info -computer"){
		MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );	
	}else if(komenda = "/regkey -new" || komenda=="regkey -new"){
		MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );
	}else if(komenda=="/regkey -del" || komenda=="regkey -del"){
		MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );
	}else if(komenda=="/info -program" || komenda=="info -program")
	
	else 
	{
	cout<<"nie ma takiej komendy!";	
	}

to wyskakuje mi błąd w kompilerze

 

0 głosów
odpowiedź 29 grudnia 2015 przez taloni Początkujący (250 p.)
if(komenda=="/keylogger" || komenda == "keylogger")

        MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );

    else erro();

     

    if(komenda=="/information")

        MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );

    else erro();

 

 

sprobuj tak
komentarz 29 grudnia 2015 przez taloni Początkujący (250 p.)

napisz to tak

if(komenda=="/keylogger" || "keylogger")

        MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );

    else  if(komenda=="/information")

        MessageBox( NULL, "Usługa chwilowo niedostępna!", "Information", MB_ICONINFORMATION | MB_OK );

    else erro();

Podobne pytania

0 głosów
3 odpowiedzi 495 wizyt
pytanie zadane 31 grudnia 2015 w C i C++ przez sapala94 Początkujący (320 p.)
0 głosów
3 odpowiedzi 268 wizyt
pytanie zadane 9 czerwca 2015 w C i C++ przez PapiK Początkujący (420 p.)
0 głosów
0 odpowiedzi 738 wizyt
pytanie zadane 26 stycznia 2017 w C i C++ przez Ciri Gaduła (3,380 p.)

92,631 zapytań

141,491 odpowiedzi

319,862 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...