Почему компилятор Objective C возвращает «y» как «0», но затем пропускает раздел «if input == 0»? - PullRequest
0 голосов
/ 24 октября 2011
int side1test;
NSLog(@"Is your triangle setup as in an Angle-Side-Angle? (Use 1 for Yes and 0 for No.)");
scanf(" %i", &side1test);

Возвращает «0», когда пользователь вводит «у». Тем не менее,

    if (side1test != 1 && side1test != 0){
        NSLog(@"Please use a '1' for YES and '0' for NO.");
    }

Тогда не ловит.

Программа попадает в мое предложение else и выводит все NSLogs, пропуская команды scanf (), принимая каждую из них как «0». Что здесь не так?

1 Ответ

1 голос
/ 24 октября 2011

Я не разработчик c ++, но из поискового запроса эта функция возвращает количество действительных совпадений.Если он возвращает 0, вы должны принять неверный ввод.side1test не был установлен, поэтому он равен 0.

Ваш код, вероятно, должен быть: -

int side1test; 
NSLog(@"Is your triangle setup as in an Angle-Side-Angle? (Use 1 for Yes and 0 for No.)"); 
int result = 0;
while (result==0)
{
    result =scanf(" %i", &side1test);
}
 if (side1test != 1 && side1test != 0){
        NSLog(@"Please use a '1' for YES and '0' for NO.");
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...