Как я могу использовать C, чтобы назначить пользовательский ввод переменной? - PullRequest
3 голосов
/ 14 апреля 2010

Мне интересно, есть ли функция, которую я мог бы использовать в стандартной библиотеке. Нужна ли мне другая библиотека (кстати, я разрабатываю для Unix).

Ответы [ 4 ]

3 голосов
/ 14 апреля 2010

См. Функцию scanf() в stdio.h. Требуется спецификатор формата, такой как printf(), и указатели на переменные для хранения пользовательского ввода в

2 голосов
/ 14 апреля 2010

Использование scanf()

Формат: int scanf ( const char * format, ... );

Read formatted data from stdin. Reads data from stdin and stores them according to the parameter format into the locations pointed by the additional arguments. The additional arguments should point to already allocated objects of the type specified by their corresponding format tag within the format string.

Пример:

#include <stdio.h>
int main(void)
{
    int n;
    printf("Enter the value to be stored in n: ");
    scanf("%d",&n);
    printf("n= %d",n);
}

Однако взгляните на this.

1 голос
/ 14 апреля 2010

'Это интересно - два ответа пока что оба предлагают scanf(); Я бы не стал.

Когда все идет хорошо, scanf() в порядке. Когда что-то идет не так, восстановление бывает трудным.

Я бы обычно использовал fgets(), чтобы сначала прочитать информацию о пользователе для одной строки в буфер (массив символов). Затем я бы использовал sscanf() для сбора информации из буфера в целевые переменные. Большим преимуществом является то, что если пользователь вводит «12Z», когда вы хотите, чтобы он набрал два числа, вы можете сказать им, что вы видели, и почему это не то, что вы хотели намного лучше. С scanf() вы не можете этого сделать.

0 голосов
/ 14 апреля 2010

Вы, кажется, совсем не знакомы с C, поэтому позвольте мне добавить кое-что к ответу на Prasoon, что является правильным и полным, но, возможно, трудным для понимания новичком.

При использовании scanf (const char * format, ...); в своем примере Прасун использует:

scanf("%d",&n);

При использовании этого «% d» означает, что вы собираетесь прочитать целое число (полный список форматов см. В Википедии ).

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

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