这段代码适用于C ++,任何想法如何将此代码转换为C,因为在C语法上有很大的不同

我有一个文件名file.csv,其中有三列和两行。 我已编码读取数据并存储在C ++中的多维数组中。

// reading csv file and storing values in matrix r const int rows = 10; const int cols = 3; ifstream file("file.csv"); if (file.is_open()) { float r[rows][cols]; for (int p = 0; p < rows; ++p) { // Reading Data from File for (int q = 0; q > r[p][q]; file.get(); // Throw away the comma from values in csv file } } 

这段代码适用于C ++,任何想法如何将此代码转换为C,因为在C中语法是完全不同的,丢掉逗号并不容易。

编辑:csv文件包含浮点值

谢谢 :)

你是对的,一些事情会改变,即你将不再能够使用流。 那就是说,这是一个相当容易的问题。

此外,SO上已有许多答案。 请参阅此主题中的答案: 在C中读取.CSV文件

关于您在评论中发布的更新代码:

strtol将数字转换为long interger,从而失去了foat point的精度。 如果你把它重新抛向浮动,它没有用,因为精度已经丢失了。 您需要使用strtof将字符串转换为float。 所以事后不需要演员表。