我有一个9x8文本文件,字符之间没有空格。如何打开此文本并将其读入并将其放入带字符的二维矢量?到目前为止我所拥有的是......
#include <iostream>
#include <fstream>
std::ifstream in_str("inputtxt.txt");
std::string line;
while (std::getline(in_str,line))
{}
std::vector<std::vector<std::string>> replacements;
我还在试图弄清楚如何设置它并将文件添加到矢量中
答案 0 :(得分:0)
这样的事情怎么样:
std::array<std::array<char, 8>, 9> characters;
std::string line;
size_t pos = 0;
while (std::getline(in_str, line))
{
std::copy(std::begin(line), std::end(line),
std::begin(characters[pos++]);
}
这将读取输入文件中的行,并将所有字符复制到数组中。
注意: 以上代码没有错误处理,也没有检查输入实际有效,最重要的是没有检查超出界限数组。如果输入的行多于预期,或者每行的字符数多于预期,则将获得undefined behavior。
另一种可能的解决方案,如果你很乐意存储字符串(当然可以使用像数组/向量这样的数组索引语法进行访问),你可以这样做。
std::array<std::string, 9> characters;
std::copy(std::istream_iterator<std::string>(in_str),
std::istream_iterator<std::string>(),
std::begin(characters));
与第一个代码示例相同的免责声明也适用于此。