Передача символа для быстрого управления - PullRequest
0 голосов
/ 09 ноября 2010

Так что мне дали эту функцию для чтения опций для выполнения. Я понимаю выполнение запросов, но у меня возникают проблемы с передачей 'c' в программу. Я полагаю, что это как-то связано с указателями, которые мне еще предстоит понять.

   int nextCommand(int *x, int *y)
        {
            char c;
            while(1){
                scanf("%c", &c);
                if (c == 's' || c == 'p') break;
                if (c == 'f' || c == 'F') {scanf("%d", x); break;}
                if (c == 'u') {scanf("%d", x); scanf("%d", y); break;}
            }
            return c;
        }

Чтобы на самом деле описать мой вопрос. Когда я вызываю эту функцию, программа замирает. Я пытаюсь ввести одну из соответствующих команд (т. Е. С или р), и программа заканчивается. Извините, я задал этот вопрос в конце долгой ночи.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2010

какая польза от scanf по x и y?программа кажется правильной.С какой проблемой вы сталкиваетесь?Можете ли вы рассказать, с какой проблемой вы столкнулись?

0 голосов
/ 09 ноября 2010

Функция просто возвращает символ (т. Е. 1 байт данных на многих платформах, но не на всех) тому, кто его вызвал.

Так, например, в вашей основной функции:

int main(int argc, char **argv)
{
    int a = 0, b =0;
    char result;

    result = nextCommand(&a, &b);

    /* at this point result will contain the single character 's', or 'u', or... etc. */

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