文本文件格式如下图:
2 列 2 行全部 * 走(这样还有四行)
对于每一行文本,我需要根据文本行中给出的信息构建一个二维向量并输出到控制台。例如,第一行文本的输出如下所示:
**
**
我可以将信息读入我的程序;但是,我不知道如何进一步。如何对信息进行分类,以便程序知道向量需要有 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());
我想你可以弄清楚其余的。
希望这可以帮助。