假設我有一個以「:」作爲分隔符的文本文件,我如何找到每列的平均值?對於例如第三列爲(3 + 2 + 5)/ 3,第二列爲(61 + 87)/ 2。從文本文件中找到平均值
我曾嘗試在while循環中使用getline,但它似乎更復雜,因爲我認爲它需要比這更多。如果有人能夠就此進行啓發,我將不勝感激。謝謝!
Sample text file
================
3:290:61:100:
2:50:
5:346:87:
當前代碼
void IDS::parseBase() {
string temp = "";
int counting = 0;
int maxEvent = 0;
int noOfLines = 0;
vector<string> baseVector;
ifstream readBaseFile("Base-Data.txt");
ifstream readBaseFileAgain("Base-Data.txt");
while (getline(readBaseFile, temp)) {
baseVector.push_back(temp);
}
readBaseFile.close();
//Fine the no. of lines
noOfLines = baseVector.size();
//Find the no. of events
for (int i=0; i<baseVector.size(); i++)
{
counting = count(baseVector[i].begin(), baseVector[i].end(), ':') - 1;
if (maxEvent < counting)
{
maxEvent = counting;
}
}
//Store individual events into array
string a[maxEvent];
while (getline(readBaseFileAgain, temp)) {
stringstream streamTemp(temp);
for (int i=0; i<maxEvent; i++)
{
getline(streamTemp, temp, ':');
a[i] += temp + "\n";
}
}
}
調試第一,以縮小你的問題,因爲請問這裏請! –
閱讀一下關於如何計算stackoverflow的問題。這不是爲了解決您的編程任務而提供的服務。答案應該有更多的一般應用,並且對很多人有用。 –