如何使用C将用户输入分配给变量?

时间:2010-04-14 03:18:27

标签: c unix

我想知道是否有一个我可以在标准库中使用的函数。我需要另一个库(BTW,我正在为unix开发)。

4 个答案:

答案 0 :(得分:3)

请参阅stdio.h中的scanf()函数。它需要一个格式说明符,如printf()和指向变量的指针,以便将用户输入存储在

答案 1 :(得分:2)

使用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.

答案 2 :(得分:1)

'很有趣 - 到目前为止两个答案都表明scanf();我不愿意。

当一切顺利时,scanf()就可以了。当事情出错时,恢复往往很难。

我通常会先使用fgets()将一行的用户信息读入缓冲区(字符数组)。然后,我将使用sscanf()将缓冲区中的信息收集到目标变量中。最大的好处是,如果用户输入“12Z”时您希望他们输入两个数字,您可以告诉他们您所看到的内容以及为什么它不是您想要的更好。使用scanf(),您无法做到这一点。

答案 3 :(得分:0)

你似乎对C很新,所以让我在Prasoon的答案中添加一些内容,这是非常正确和完整的,但对初学者来说可能很难理解。

使用scanf时(const char * format,...);在他的例子中,Prasoon使用:

scanf("%d",&n);

使用时,“%d”表示您要读取整数(有关完整格式列表,请参阅wikipedia。)

第二个参数(请注意......表示您可以发送任意数量的参数)表示您将在其中存储用户条目的变量的地址