在C中读取从文件到结构数组的字符串

时间:2014-11-24 22:14:57

标签: c arrays file struct

我正在尝试从文件中读取字符串并将它们添加到我的结构数组中,但是当我这样做时,我会在一个或两个字符串的末尾得到一些随机字符。这是我的代码逐行读取字符串:

while ((read = getline(&line, &len, fp)) != -1) {
strncpy(&structures[i].id,line,4);   //copies the first four characters to my array of structures
...
}

当我打印出结构[0]。它打印出#34;WW23�"什么时候它应该只是" WW23"。它用几个字符串来做,尽管不是全部。 我的结构看起来像这样。

struct observers
{
 char id[13];
 ...
};

它从文件中正确读取至少它获得了正确的整数值。

2 个答案:

答案 0 :(得分:4)

您没有终止字符串。添加' \ 0'最后structures[i].id[4] = '\0'。它应该工作正常。

答案 1 :(得分:1)

您可能需要添加'\ 0'作为终止字符串的第5个字符。