1

我有一个文件名 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 < cols; ++q) {
            file >> r[p][q];
            file.get(); // Throw away the comma from values in csv file
        }
    }

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

编辑:csv 文件包含浮点值

谢谢 :)

4

2 回答 2

1

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

此外,SO 上已经有许多答案。请参阅此线程中的答案:Read .CSV file in C

于 2013-11-07T09:36:30.383 回答
0

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

strtol将数字转换为长整数,从而失去浮点精度。如果您将其转换回浮点数,则无济于事,因为精度已经丢失。您需要使用strtofwhich 将字符串转换为浮点数。所以之后不需要演员表。

于 2013-11-14T16:00:33.847 回答