在char(* ptr)[LENGTH]结构中保存文件行

时间:2017-10-23 19:09:42

标签: c

我想阅读文件并将行保存在char (*ptr)[LENGTH]中。我的程序背后的基本思想是比较两个文件中的行,并注意用户每行之间的差异。行的长度是固定的,文件中的行数不是。这就是为什么我认为数据结构是一个不错的选择。

现在我只是逐行读取文件并希望保存每一行(请注意长度是固定的),并指向包含该行的char数组。不知怎的,它不起作用。我在每一行创建一个新的字符数组,以获取一个新地址来获取一行的新地址(但地址保持不变)。

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

#define LENGTH 50

int main(void)
{
    FILE* fp1;
    fp1 = fopen("test1", "r");

    char singleLine[LENGTH] = "";
    char (*ptr)[LENGTH];

    ptr = malloc(sizeof(char) * LENGTH * 10);
    memset(ptr, 0, sizeof(char) * LENGTH * 10);

    while (fgets(singleLine, sizeof(singleLine), fp1) != NULL)
    {
        char tmp[LENGTH] = "";

        strcpy(tmp, singleLine);

        ptr = &singleLine;

        printf("\n%p\n", (void*) &tmp[0]);
        printf("\n%p\n", *ptr);

        *ptr++;
    }
    return 0;
}

这不起作用,我不确定我的思维过程在哪里 是错的。我也有一种感觉,应该有一种更清洁的方式来获得我想要的功能。

感谢您的任何建议和提示!

0 个答案:

没有答案