将整数字符串存储到数组中

时间:2014-12-10 01:19:05

标签: c arrays string integer dynamic-allocation

void ReadReferenceStream(char * filename) {
    char buf[MAXCHAR];
    int i;
    char* np;

    inputfile = fopen(filename, "r");
    if(inputfile == NULL)
        printf("File is empty!\n");

    while((fgets(buf,MAXCHAR,inputfile)) != NULL) {
        if(buf[0] == '#' || buf[0] == '\n')
            continue;
    }

    np = strtok(buf," ");

    Pages = malloc(atoi(np)*sizeof(int));

到目前为止,这就是我所拥有的一切。

我需要先为我的数组动态分配空间(变量'np'是数组'Pages'中必须有多少整数),我希望我做得正确。

然后,我跳过输入文本文件中以#或NULL字符开头的任何行。

最后,我需要将整数存储到数组Pages中,但第一个整数除外,它是'np'的值。

如何更改我的代码以使其完全按照我的提及工作。我得到了大部分内容,我只是努力让它将整数放入数组中。

1 个答案:

答案 0 :(得分:0)

鉴于您目前所拥有的内容,并假设Pages定义为int *Pages,只需读入剩余的整数:

    for (i = 0; np = strtok(NULL, " "); ++i) Pages[i] = atoi(np);