【问题标题】:reading strings from file to struct array in C在C中从文件读取字符串到结构数组
【发布时间】:2014-11-24 22:14:57
【问题描述】:

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

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

当我打印出结构[0].id 时,它会打印“WW23�”,而它应该只是“WW23”。它使用几个字符串来执行此操作,尽管不是全部。 我的结构看起来像这样。

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

它正确地从文件中读取,至少它得到正确的整数值。

【问题讨论】:

  • 发布id的定义。是char id[4]吗?如果是这样 `structures[i].id[4] = '\0'` 是错误的。

标签: c arrays file struct


【解决方案1】:

您没有终止字符串。在structures[i].id[4] = '\0' 末尾添加“\0”。它应该可以正常工作。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多