2012-09-27 135 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()); 

我想你可以找出其余的。

希望这会有所帮助。