problem z inftrukcją if

0

witam. chcę napisać program który po wpisaniu komendy będzie wykonywał określone czynności lecz mam problem z instrukcją if. Dlaczego to nie działa? proszę o pomoc.

#include<iostream>
using namespace std;

int main()
{
char komenda[15];

while(cin>>komenda)
{
cout<<komenda;
if (komenda=="ustaw")
{
cout<<"podaj: ";
}

}

return (0);
}

0

W ten sposób nie porównuje się napisów. Albo użyj do porównania std::strcmp, albo zastąp tablice char klasą std::string.

http://www.cplusplus.com/reference/cstring/strcmp/
http://www.cplusplus.com/reference/string/string/

0
char komenda[15];
while(cin>>setw(14)>>komenda) ... // nie zapomnieć #include <iomanip>

W przeciwnym przypadku ryzykujesz przepełnienia.

0

a co jeśli nie mogę z tego korzystać? czy jest jeszcze jakiś inny sposób?

0

Jak to nie możesz? :-|

Możesz napisać sobie własną funkcję porównującą (w skrócie trzeba po prostu porównać każdy znak, bo teraz porównujesz adresy), albo zrezygnować z takiego wybierania na rzecz liczb (znaków).

0

ok spróbuje napisać własną funkcję, dzięki za podpowiedź

0
#include <iostream>
#include <iomanip>
using namespace std;

int main()
  {
   char komenda[15];
   while(cin>>setw(14)>>komenda)
     {
      cout<<komenda;
      if(!strcmp(komenda,"ustaw")) cout<<"podaj: ";
     }
   return (0);
  }

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