Помогите с базовым чтением пользовательского ввода в C - PullRequest
0 голосов
/ 24 сентября 2011

В настоящее время я только изучаю C, и для проекта мне нужно прочитать целочисленные входные данные пользователя. В настоящее время я использую код, который выглядит следующим образом:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

    int a, b;

    printf("Please enter your first number");
    while((a = getchar()) != '\n') {
    }

    printf("test");

    return 0;
}

Я не уверен, как получить число с помощью getchar, а затем сохранить его в переменной, которую я могу использовать. Также я использую = '\ n' в операторе while, потому что я не совсем понимаю, как работает EOF (как в книге K & R), потому что всякий раз, когда я использую EOF, я иду в этот цикл, из которого я не могу выйти.

Спасибо за любой совет, который может предложить любой.

Ответы [ 2 ]

4 голосов
/ 24 сентября 2011

Вы можете использовать scanf.

Посмотрите на этот пример:

printf("Please enter your first number ");
int number=0;
scanf ("%d",&number);
0 голосов
/ 24 сентября 2011

Ответ на scanf над моим является правильным, но если вы не читали об адресах или строках форматирования, вам может быть трудно уловить.

Вы можете преобразовать ваш символ в его целочисленный эквивалент, вычитая '0'из него:

char c = getchar();
int n = c - '0';
...