我正在尝试将从文件读取的字符存储到字符数组中,但它最终也会存储每个后续字符。对于这段代码,我创建了一个结构和一个函数来初始化数组。
来自“结构.h”
typedef struct (
int size;
char *elem;
} cvector;
来自“实用程序.c”
cvector make_cvector (int size)
{ cvector temp;
temp.size = size;
temp.elem = calloc(size, sizeof(char));
return temp;
}
然后我试图读取一个文本文件,上面写着:“ab c”
在正文中,我说:(其中 nPtr 是打开文件的指针)
cvector NodeID;
NodeID = make_cvector(3);
for(i=0;i<3;i++){
fscanf(nPtr,"%s", &NodeID.elem[i]);
printf("%s ",&NodeID.elem[i]);
}
这导致“ abc ” 但是在这个循环之后,我输入了另一个循环:
for(i=0;i<3;i++)
printf("%s ", &NodeID.elem[i]);
导致“abc bc c”实际上我想将“a”“b”和“c”分开存储。我的初始化或指针可能有问题,但我一直试图在线阅读无济于事。错误可能在哪里?谢谢!