2015-02-11 93 views
-3

我遇到了作業問題。我必須打開一個看起來或多或少像這樣的文本文件:從字符串中提取數字到數組中

------------------------------------------------------------- 
|ammount  |  time   |delay    | 
------------------------------------------------------------- 
|100   |  342    | 4324    | 

還有幾行。我所要做的就是將數字輸入到數組中,對於上面的示例,它將如下所示:ar[0]=100, ar[1]=342, ar[2]=4324。我想我需要用getline逐行讀取文件,但接下來呢?如果我使用stringstream,我會得到|100而不僅僅是100。我現在真的沒有想法。

回答

0

讀取輸入的一行像你描述的(file可能是ifstream或這裏istringstream):

for (int i = 0; i < 3; ++i) 
{ 
    file.ignore(numeric_limits<streamsize>::max(), '|'); // Ignores all characters until it finds a '|' character 
    file >> ar[i]; // Reads the number following the '|' to ar[i] 
} 
file.ignore(numeric_limits<streamsize>::max(), '\n'); // Finally, ignores all characters until newline 

你甚至可以做一個小捷徑宏,如果你想:

#define ignore_until(c) ignore(numeric_limits<streamsize>::max(), c) 

並且像這樣使用它:

file.ignore_until('|');