игнорирование возвращаемого значения scanf, объявленного с атрибутом warn_unused_result - PullRequest
0 голосов
/ 30 апреля 2020

Итак, у меня есть эта функция, которая в основном предназначена для scanf имени, которое человек напишет и вернет.

Но, когда я проверяю ошибки, он говорит, что игнорирует значение scanf, когда я действительно его возвращаю и использую где-то еще.

char* nomes (int n, char* nome ) {
    if (n == 1) printf(" Escolha o nome \n(max10 e sem espaços)\n");
    printf(" Jogador %d:",n);
    scanf("%10s",nome);
    print_linha ();
    return nome;
}

1 Ответ

0 голосов
/ 30 апреля 2020

Просто посмотрите на scanf функцию, например здесь . Возвращает int. Что вы делаете в своем коде, так это то, что вы используете параметр, который был изменен scanf. Вот что вы хотите:

char* nomes (int n,char* nome ){
    if (n==1) 
        printf(" Escolha o nome \n(max10 e sem espaços)\n");
    printf(" Jogador %d:",n);

    int result = scanf("%10s",none);
    // do something with result
    ...

    print_linha ();
    return nome;
}

Если вам не нужен тип возврата, вы можете просто разыграть его (но я думаю, что это плохая практика): (void)scanf("%10s",none);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...