文本文件的格式如下所示:
2列 2 行 全部 * go(像这样还有四行)
对于每一行文本,我需要根据文本行中给出的信息构建一个 2D 向量并输出到控制台。例如,第一行文本的输出如下所示:
**
**
我可以将信息读入我的程序;但是,我不知道如何进一步。如何对信息进行分类,以便程序知道向量需要有 2 列和 2 行?
任何提示或帮助将不胜感激。
谢谢!
似乎您需要解析输入并从中获取信息。现在,有这样的库,比如 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());
我想你可以弄清楚其余的。
希望这有帮助。