将csv文件的输入解析为char数组

时间:2015-09-15 21:14:31

标签: c arrays char

我的csv文件采用以下方式格式化:

  var element1 = document.createElement("script");
  element1.src = "js/file3.concat.min.js";
  document.body.appendChild(element1);

我想以这种方式存储数据:

0,0,46,#FFFFFF,#000000

我为解析每一行所做的功能就像:

typedef struct {
    char x[2];
    char y[2];
    char asc[3];
    char fore[7];
    char back[7];
}LINE;

}

一切顺利,直到Linea.fore,在输出中,Linea.fore显示“#FFFFFF#000000”并且其strlen为14,就像while循环从未找到“,”分隔这些值。但是Linea.back的价值和len都是正确的。

我认为这是关于char数组处理的问题。

  • 为什么问题只出现在Linea.fore中?
  • 我应该使用for循环而不是while循环并在循环中询问','吗?
  • 它的硬编码'\ 0'错了?

谢谢!

2 个答案:

答案 0 :(得分:1)

遵循相同的逻辑,根据您定义的

char x[2];
char y[2];

你需要

char fore[8];
char back[8];

使用null-termination存储完整数组(根据您的输入)。

答案 1 :(得分:0)

您错过了字段上的\ 0-terminator,因此strlen en printf函数会看到字段在一起。