我正在尝试从文件中读取字符串并将它们添加到我的结构数组中,但是当我这样做时,我会在一个或两个字符串的末尾得到一些随机字符。这是我的代码逐行读取字符串:
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];
...
};
它从文件中正确读取至少它获得了正确的整数值。
答案 0 :(得分:4)
您没有终止字符串。添加' \ 0'最后structures[i].id[4] = '\0'
。它应该工作正常。
答案 1 :(得分:1)
您可能需要添加'\ 0'作为终止字符串的第5个字符。