Ошибка компиляции GCC: формат '% c' ожидает аргумент типа 'char *', но аргумент 2 имеет тип 'int' [-Wformat]

Хорошо, я новичок в C, но считаю, что код простой и понятный. Эта программа предназначена для обучения в колледже и должна иметь в себе функцию isdigit (). Вот код

//by Nyxm
#include <stdio.h>
#include <ctype.h>

main()
{
    char userChar;
    int userNum, randNum;
    srand(clock());
    printf("\nThis program will generate a random number between 0 and 9 for a user to guess.\n");
    /*I changed it from '1 to 10' to '0 to 9' to be able to use the isdigit() function which
    will only let me use a 1 digit character for an argument*/
    printf("Please enter a digit from 0 to 9 as your guess: ");
    scanf("%c", userChar);
    if (isdigit(userChar))
    {
            userNum = userChar - '0';
            randNum = (rand() % 10);
            if (userNum == randNum)
            {
                    printf("Good guess! It was the random number.\n");
            }
            else
            {
                    printf("Sorry, the random number was %d.\n", randNum);
            }
    }
    else
    {
            printf("Sorry, you did not enter a digit between 0 and 9. Please try to run the program again.\$
    }
}

Когда я пытаюсь скомпилировать, я получаю следующую ошибку:

week3work1.c: In function ‘main’:
week3work1.c:14:2: warning: format ‘%c’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat]

Что, черт возьми, происходит? Я отчаянно нуждаюсь в помощи. Любая помощь. Я серьезно собираюсь просто отказаться от этой программы. Почему он говорит, что ожидает аргумента 'char *', когда мой учебник показывает, что "% c" означает обычный старый символ 'char'? Я использую nano, gcc и Ubuntu, если это имеет значение.

6
задан Nyxm 30 January 2012 в 23:02
поделиться