2011-03-27 77 views
0

如何使用C++從CSV文件中計算列的總和?使用C++計算CSV文件中列的總和

我的csv文件

 
22 45 33 
8 50 70 
4 60 88 

而且我想要的結果在一個數組這樣

 
34 155 190 

有些事情我可以在一個CSV文件中使用C語言編程添加公式

+0

因此,您想要獲取CSV文件所有行中每列的總和值?你的例子令人困惑,因爲33 + 70 + 88!= 170.到目前爲止,你嘗試過什麼? – 2011-03-27 13:13:20

+0

是的,先生我想整理每一行的每一列 – tariq 2011-03-27 13:21:22

+0

這不是一個CSV文件。這是一個以空格分隔的列格式。 – 2011-03-27 14:02:30

回答

0

商店數列之和:

int val; 
int sum[column]; 

for each row in csv file 
    for each column i in csv file 
     val = atoi(read_value_from_file()) 
     sum[i] += val 
    end for 
end for 
+0

數組中只需要一個維度,其中包含到達列的運行總數。每次讀取一行時,將這些列添加到數組中的正在運行的總計中。 – 2011-03-27 13:34:03

+0

先生有很多專欄...我應該怎麼做在這種情況下 – tariq 2011-03-27 13:45:44

+0

@tariq:在這裏。 @Mike DeSimone:是的,我有兩個陣列,因爲OP可能需要稍後的單個值 – BlackBear 2011-03-27 13:50:26

0
#include <iostream> 
#include <fstream> 

int main(int argc, char *argv[]) { 
    std::ifstream in; 
    int array[3] = {0, 0, 0}; 
    if (argc < 2) 
     return 1; 

    in.open(argv[1], std::ifstream::in); 
    while (in.good()) { 
     int one, two, three; 
     in >> one >> two >> three; 
     array[0] += one; 
     array[1] += two; 
     array[2] += three; 
    } 

    std::cout << array[0] << ' ' << array[1] << ' ' << array[2] << std::endl; 
    in.close(); 

    return 0; 
} 

這樣的事情?

+0

謝謝先生您的回覆先生,請告訴我什麼是好的()從來沒有聽說過這個,我也有很多列在我的文件如何將它們添加到行中,即在第一列中添加值,然後跳轉到第三列。所以 – tariq 2011-03-27 13:44:57

+0

http://www.cplusplus.com/reference/iostream/ios/good/ 它會讀取整個文件,無論它有多少行。 – Kash 2011-03-27 14:38:20

0

您可以將表格存儲在二維數組中,然後使用簡單for循環計算列中元素的總和。 檢查this存儲庫獲取相同的代碼。 希望它有幫助。