2012-09-27 173 views
0

文本文件中的2維矢量被格式化爲如下所示:C++從文件中讀取信息,建立從該信息

2列2行中的所有*去 (這樣四個行)

對於每個我需要根據文本行中給出的信息構建一個2D矢量並輸出到控制檯。例如,文本的第一行的輸出應該是這樣的:

**

**

我可以讀取信息到我的程序;然而,我不知道如何進一步。如何對信息進行分類,以便程序知道矢量需要有2列和2行?

任何提示或幫助將不勝感激。

謝謝!

+2

發佈您的代碼。告訴我們你的嘗試。 – Borgleader

+0

該線是否有任何規範?它總是「X列Y行Z所有」? –

回答

0

好像你需要解析輸入並從中獲取信息。現在,有一些庫,比如boost::spirit,但是如果你只需要這個簡單的例子,那麼只有一種情況下不需要使用這麼大的庫。

我建議輸入字符串的簡單拆分單詞,像這樣:

string input = "2 columns 2 rows all * go"; // Read it from some input 
istringstream iss(input); 

vector<string> tokens; 
copy(istream_iterator<string>(iss), 
    istream_iterator<string>(), 
    back_inserter<vector<string> >(tokens)); 

然後tokens是你的話。所以,如果你期望第一個詞是列,第三個是列,那麼你可以這樣做:

int columns = atoi(tokens[0].c_str()); 
int rows = atoi(tokens[2].c_str()); 

我想你可以找出其餘的。

希望這會有所幫助。