0

文本文件格式如下图:

2 列 2 行全部 * 走(这样还有四行)

对于每一行文本,我需要根据文本行中给出的信息构建一个二维向量并输出到控制台。例如,第一行文本的输出如下所示:

**

**

我可以将信息读入我的程序;但是,我不知道如何进一步。如何对信息进行分类,以便程序知道向量需要有 2 列和 2 行?

任何提示或帮助将不胜感激。

谢谢!

4

1 回答 1

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());

我想你可以弄清楚其余的。

希望这可以帮助。

于 2012-09-27T05:47:04.667 回答