Димарио
15.07.2019, 16:21
Не могу понять как работает условие при использовании sscanf (в частности, допустим, при его применении в написании команд)
Опытным путём я установил что sscanf возвращает 0 если успешно разделил строку и -1 если этого сделать не удалось
Так вот вопрос, почему такая конструкция выдаёт игроку сообщение когда он что-то неправильно указал, если sscanf возвращает -1 в таком случае и все то что находится в if(..) является верным и код должен идти дальше, без выдачи игроку return, ведь по сути же все что конкретно не 0 - истина
А если sscanf успешно разделил бы, то в условие наоборот бы передалось 0 и код должен выдать этот самый return, но на практике же все происходит ровным счетом наоборот, почему?
if(sscanf(params, "d", num)) return SendClientMessage(...)
Опытным путём я установил что sscanf возвращает 0 если успешно разделил строку и -1 если этого сделать не удалось
Так вот вопрос, почему такая конструкция выдаёт игроку сообщение когда он что-то неправильно указал, если sscanf возвращает -1 в таком случае и все то что находится в if(..) является верным и код должен идти дальше, без выдачи игроку return, ведь по сути же все что конкретно не 0 - истина
А если sscanf успешно разделил бы, то в условие наоборот бы передалось 0 и код должен выдать этот самый return, но на практике же все происходит ровным счетом наоборот, почему?
if(sscanf(params, "d", num)) return SendClientMessage(...)