2012-09-29 43 views
1

我知道有幾種C++方法可以從CSV中加載值,但我很好奇,如何才能以最小的改變來調整這種不正確的方法要使其工作:使用ifstream :: operator >>從CSV文件加載數組

std::ifstream fileStream ("File.txt"); // File.txt reads "1,2,3" 
short numbers[3]; 

for (short i = 0; i < 3; ++i) 
    fileStream >> numbers[i]; 

有什麼辦法,我可以做到這一點使用ifstream的::運算符>>,同時保持在概念上儘可能地接近這個實現?修復此代碼! :-)

謝謝!相信與否,這對我正在研究的一個計算中微子物理學項目非常有幫助。

回答

2

作爲將逗號讀入臨時變量的快速修復,可以讓您從文件中獲取數據。

std::ifstream fileStream ("File.txt"); 
short numbers[3]; 
char delim; 

fileStream >> numbers[0]; 
for (int i = 1; i < 3; ++i){ 
    fileStream >> delim; 
    fileStream >> numbers[i]; 
} 
+0

Hooray!正如你所說,我假設操作符>>會一直跳到它加載的類型的下一個變量,但它會掛在逗號上。 – UltraBird