problem z inftrukcją if

problem z inftrukcją if
C9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
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);
}

Endrju
  • Rejestracja: dni
  • Ostatnio: dni
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/

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
char komenda[15];
while(cin>>setw(14)>>komenda) ... // nie zapomnieć #include <iomanip>

W przeciwnym przypadku ryzykujesz przepełnienia.

C9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

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

Endrju
  • Rejestracja: dni
  • Ostatnio: dni
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).

C9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

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

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
#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);
  }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.