簡體   English   中英

讀一個文本文件到第2個傳染媒介。 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++]);
}

這將從輸入文件中讀取行,並將所有字符復制到數組中。

注意:上面的代碼沒有錯誤處理,也沒有檢查輸入是否實際有效,最重要的是,沒有檢查是否超出數組范圍。 如果輸入的行比預期的多,或者每行的字符比預期的多,您得到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));

與第一個代碼示例相同的免責聲明也適用於此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM