从stdin读取整数到ADT中

时间:2015-10-12 16:44:18

标签: c list data-structures struct typedef

这是我的抽象数据结构

 typedef struct {
    int *items;
    int size;
 } List;

我希望用户在单行输入整数,例如

  a.out 
  12 14 2 8 9

并将其读入列表。我理解如何添加到列表,我想我没有得到的是从单行输入获取整数

编辑:抱歉,我的意思是使用scanf而不是命令行参数

2 个答案:

答案 0 :(得分:1)

1。 main的定义应为int main(int argc,char **argv)

2. 这些数字将命令行参数(在使用argc之前检查1的值大于argv)。

3。 argv[1]argv[2]将包含这些数字,但为字符串。

4. 使用atoisscanf函数将这些转换为整数,并根据需要存储在结构成员中。

修改

  

编辑:抱歉,我的意思是使用scanf而不是命令行参数

您可以使用fgets,使用strtok标记字符串,然后将其转换并存储为整数变量。

答案 1 :(得分:0)

您必须使用输入参数,如:

您的主要功能如下:int main(int argc,char * argv [])

在这种情况下,您可以像在

那样在命令行添加参数

./ a.out 12 14 2 8 9

您可以通过argv [1],argv [2],argv [3],...来访问这些参数。

并且您可以遍历用户提供的参数数量,该参数包含在argc变量

访问第一个参数的示例:

int i;

i = atoi(argv [1]);