我需要生成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