Как выйти из цикла while в Objective C, используя scanf и сравнение строк массива символов C? - PullRequest
0 голосов
/ 28 марта 2011

Я пишу простую тестовую программу для выхода из цикла while, когда пользователь вводит EXIT:

char *userEntry;
while(userEntry != "EXIT")
{
  NSLog(@"Enter EXIT to quit");
  scanf("%s", &userEntry);
}

Как есть, цикл не завершается.

Может кто-нибудь объяснитьмне, что мне нужно сделать, чтобы заставить его работать?Спасибо:)

Ответы [ 2 ]

1 голос
/ 28 марта 2011

у вас 2 проблемы,

  1. Вам нужно назначить пространство для хранения вашей строки, просто чтобы объявить * userEntry создает только указатель.попробуйте написать это как этот символ userEntry [10];

  2. вы не можете сравнить указатель на массив символов, попробуйте использовать strcmp ... напишите это так

if (0! = Strcmp (userEntry, "EXIT")) {scanf (...)}

AsiQue

1 голос
/ 28 марта 2011

Вы сравниваете адрес переменной userEntry с адресом строковой константы «EXIT».Вам нужно сравнить их содержимое вместо этого.Используйте strcmp и читайте указатели.

...