编译CSV,数组还是结构?

时间:2017-06-26 08:33:03

标签: arrays csv

我需要生成CSV文件。现有代码按顺序生成数据。我需要写入CSV格式文件。 现有数据是整数和浮点数的混合。 所以我想写一个二维数组,但它不起作用 两个暗淡的阵列用于表示行和列。最终CSV的列,以便我可以任意写入任何X / Y位置..

float fArray[355*4][14];/* to save data for Data.csv */

fprintf( ascidatarep, "HAUTEUR,%2.1f,%2.1f,", fH, fC); // this works
snprintf((char *)(&fArray[0][0]),1,"%2.1f", fH); // these lines fail
snprintf((char *)(&fArray[0][1]),1,"%2.1f", fC);

printf(" [0][0]=%2.3f [0][1]=%2.3f\n",fArray[0][0],fArray[0][1]);
// C:\  [0][0]=0.000 [0][1]=0.000 // result

由于我试图将字符与浮点数混合,所以它不起作用,如果我定义一个char [] []数组也不起作用,因为我无法将浮点数转换为单个字符。

我猜答案是一个结构但我无法生成一个有效的结构:

 struct CSV {
  char cArray[32];
  int   iArray;
  float fArray;
}tocsv[355*4][14];

要使用这个我需要知道在使用tocsv.cArray [0] [1]之前我正在访问一个字符串,相反,当写入结束CSV时它是一个字符。

必须有一个更简洁的方式吗?

尝试了你建议的两个数组@Haskell,但我必须有一个我找不到的拼写错误:

float fArray[14][355*4][1];  /* to save data for Data.csv */
char  cArray[14][355*4][5];  /*  ------------  "  ------- */

snprintf((char *)(&cArray[0][0][0]),4,"%2.1f", fH);
snprintf((char *)(&cArray[0][1][0]),4,"%2.1f", fC);
printf(" [0][0]=%4s [0][1]=%4s\n",&cArray[0][0][0],&cArray[0][1][0] );
// C:\  [0][0]= 85. [0][1]= 46.
// should print 85.1 & 46.8

0 个答案:

没有答案