Я не понимаю, как правильно использовать printf в этих условиях - PullRequest
0 голосов
/ 26 февраля 2019

Это код для назначения в классе в настоящее время, вопрос просит нас попросить пользователя ввести число, чтобы найти наименьший положительный делитель для.

Я получаю сообщение об ошибке: предупреждение: формат не строкабуквальные и без форматирования аргументы [-Wformat-security]

при использовании этого кода

#include <stdio.h>

int main(void)
{
    int divisor;
    int dividend;

    divisor=2;

    printf("Enter a number to divide: ");
    scanf("%d", &dividend);

    while(divisor!=0)
    {
        divisor++;
    }

    printf("%s","The lowest positive divisor is: ",dividend);
}

Я думаю, что мне нужно где-то использовать% s, но я новичок в c ++ и невполне понимаю, какие изменения форматирования должны быть сделаны

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Поместите% s в строку как:

 printf("The lowest positive divisor is: %s", dividend);

Но в этом случае используйте% d, потому что это целое число:

printf("The lowest positive divisor is: %d", dividend);
0 голосов
/ 26 февраля 2019
printf("%s","The lowest positive divisor is: ",dividend);

В вашей строке указан только один спецификатор формата, но вы передаете 2 переменные printf.Вы должны также указать спецификатор dividend:

printf("%s %d","The lowest positive divisor is: ",dividend);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...