2013-03-04 161 views
4

我想閱讀多列,不同變量類型的文件。列數不確定,但在2或4之間。因此,舉例來說,我有一個文件:C++多列閱讀文件

  • 字符串INT
  • 串INT串雙
  • 串INT串
  • 串INT串雙

謝謝!

我修改了列的數量,將其數量修改爲原來寫入的2或5之間,而不是4或5。

+2

所以你想讓我們寫你的代碼?你不付錢給我們?因此,請在這裏進行研究並提出問題,以瞭解您在此過程中遇到的具體問題。 – 2013-03-04 16:45:39

+2

柱子是如何分開的?如果使用空格(空格或製表符),那麼普通的輸入操作符'>>'可以正常工作。 – 2013-03-04 16:45:45

+0

*列數是不確定的,但在4或5之間* ---但您的示例顯示第一行只包含2列,而沒有一列包含5列! – Praetorian 2013-03-04 16:47:37

回答

5

你可以先閱讀std::getline

std::ifstream f("file.txt"); 
std::string line; 
while (std::getline(f, line)) { 
... 
} 

再行解析此行以stringstream

std::string col1, col3; 
int col2; 
double col4; 
std::istringstream ss(line); 
ss >> col1 >> col2; 
if (ss >> col3) { 
    // process column 3 
    if (ss >> col4) { 
     // process column 4 
    } 
} 

如果列中可能包含不同的類型,你必須先讀入一個字符串,並然後嘗試確定適當的類型。