Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Не могу отомпилировать.. (http://forum.oszone.net/showthread.php?t=106578)

M1sha 08-05-2008 21:38 797961

Не могу отомпилировать..
 
Доюрый день.
Добрый день.
В общем, так.. Пишу программу, в которой фигурирует меню в виде псевдографики на основе динамического двунаправленного кольцевого списка (внешне похоже на меню GTA:Vice City). Написал это меню. Все хорошо. Начал писать его обработку и тут возникла проблема..
HTML код:

#define a2 "Exit";
….
do
  {
      OutMenu (HeadMenu,/*TailMenu,*/Activ,color);
      i=getch();

      //vniz
      if (i==80)
        Activ=Activ->next;
      //vverh
      if (i==72)
        Activ=Activ->pred;
      //najali Enter
      if (i==13)
        if (Activ->info==a2)
            i=27;
  }
while (i!=27);

Проблема: не хочет компилировать эту строку: if (Activ->info==a2) что тут не так? Писала аналогичное на Pascal'е, все получалось, а тут..

BlackEric 09-05-2008 00:19 798049

Компилятор , код ошибки, как объявлен Activ, версия ОС?

Admiral 09-05-2008 05:11 798130

А может if ((Activ->info)==a2) ?

M1sha 09-05-2008 11:40 798204

Цитата:

Цитата BlackEric
Компилятор , код ошибки, как объявлен Activ, версия ОС? »

Borland c++(если этого не хватает, то скажите где смотреть).
121: If statement missing
121: Expression syntax
XP SP2 версия 5,1 сборка 2600
Цитата:

Цитата Admiral
А может if ((Activ->info)==a2) ? »

неа :(

Admiral 09-05-2008 17:22 798386

Тогда стоит поробовать так
Код:

if (i==13)
      {
        if (Activ->info==a2)
                  i=27;
      }

Хотя там по одному вложениюв if должно и так счёлкать.

M1sha 09-05-2008 17:29 798387

Admiral, 'это ничего не меняет..вложен только один оператор.

Admiral 09-05-2008 17:44 798395

Да я так в оффе тоже написал. Но может компилятор запутался :wink:
А всё же как объявлен Activ?

M1sha 09-05-2008 18:20 798406

Эх, забыл сразу отправить :) Вот:

HTML код:

#define TNode struct TNode
TNode
{
  char info[10];
  TNode *next;
  TNode *pred;
};

...

TNode *Activ=HeadMenu;


ivank 12-05-2008 15:30 800470

M1sha, массивы нельзя сравнивать с помощью оператора ==. Для сравнения строк есть функция strcmp.

M1sha 12-05-2008 19:26 800772

ivank, спасибо, теперь все работает)


Время: 18:45.

Время: 18:45.
© OSzone.net 2001-