将文本文件读入 2D 矢量.C++
Reading a text file into a 2d vector. C++
我有一个9x8的文本文件,字符之间没有空格。如何打开此文本并阅读并将其放入带有字符的 2D 矢量中?到目前为止,我所拥有的是这个...
#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;
我仍在尝试弄清楚如何设置它并将文件添加到矢量中
像这样的事情怎么样:
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++]);
}
这将从输入文件中读取行,并将所有字符复制到数组中。
注意:上面的代码没有错误处理,没有检查输入是否实际有效,最重要的是,没有检查数组越界。如果输入行数超过预期,或每行字符数超过预期,则会出现未定义的行为。
另一种可能的解决方案,如果您乐于存储字符串(当然可以使用数组/向量等数组索引语法访问字符串),您可以这样做,
例如std::array<std::string, 9> characters;
std::copy(std::istream_iterator<std::string>(in_str),
std::istream_iterator<std::string>(),
std::begin(characters));
与第一个代码示例相同的免责声明也适用于此处。
相关文章:
- 我是 C++ 的初学者,我想知道如何在 2D 矢量中获取重复值
- 如何在 c++ 中格式化和访问 2D 矢量数组中的数据
- 读取字符串文本输入以创建 2D 矢量
- 识别 2D 矢量C++中的位置
- Cython:无法分配给 2D 矢量
- 按列随机播放 2D 矢量
- 初始化空的 2D 矢量?
- 如何在 2d 矢量 c++ 中复制元素并将其放在原始元素旁边
- 如何访问具有地图的2D矢量?
- 通过功能进行2D矢量输入和显示
- 在C++中将对象添加到 2D 矢量
- 太空入侵者 – 2D 矢量运动算法
- 从 2 个 1D 矢量创建 2D 矢量
- 如何仅使用其中一个维度在 2D 矢量中插入值?
- 在 2D 矢量中获取多个输入时出现问题
- 2D 矢量循环 C++
- C++ 2D 矢量到 2D pybind11 数组
- 在 2D 矢量数组中的特定标头下添加数据
- 在C++中使用 2D 矢量时出现明显的内存泄漏
- 从文本文件中读取一行并将其存储在 C++ 中的 2D 矢量中