C++ 从隐藏在随机字符之间的文件中提取整数 #包括 #包括 #包括 结构值{ INTA、b、c、d; }; int main(){ std::ifstream myfile(“myfile.txt”); std::vector-vect; //文本文件的格式为: //sdasjkdh234sldaksdj23asd125as24dfs //asdac5234sdf435ljk…35wsd63jj //asdad234sdf35gg567dfg554ddd }

C++ 从隐藏在随机字符之间的文件中提取整数 #包括 #包括 #包括 结构值{ INTA、b、c、d; }; int main(){ std::ifstream myfile(“myfile.txt”); std::vector-vect; //文本文件的格式为: //sdasjkdh234sldaksdj23asd125as24dfs //asdac5234sdf435ljk…35wsd63jj //asdad234sdf35gg567dfg554ddd },c++,C++,我需要从一个文件中创建一个向量,其中每行包含隐藏在随机字符之间的四个整数,并将它们放入结构向量中,其中每个整数映射到结构值中的四个字段。该文件没有空格 最简单的方法是什么?逐行读取文件并用正则表达式匹配整数。将任何非数字字符替换为空格,然后使用std::istream::operator将文件中的数据块读入内存,然后解析内存。重复。最简单的方法是从输入文件中一次读取一个字符。如果字符isdigit()则保存它,否则重复。这可能不是最有效的。还可以在堆栈溢出中搜索“c++为什么EOF不好”。是否要

我需要从一个文件中创建一个向量,其中每行包含隐藏在随机字符之间的四个整数,并将它们放入结构向量中,其中每个整数映射到结构值中的四个字段。该文件没有空格


最简单的方法是什么?

逐行读取文件并用正则表达式匹配整数。将任何非数字字符替换为空格,然后使用
std::istream::operator将文件中的数据块读入内存,然后解析内存。重复。最简单的方法是从输入文件中一次读取一个字符。如果字符
isdigit()
则保存它,否则重复。这可能不是最有效的。还可以在堆栈溢出中搜索“c++为什么EOF不好”。是否要添加一些解释?是否有一个编码标准规则规定,如果代码确切地说明了它在做什么,就不应该对其进行注释?
#include <fstream>
#include <vector>
#include <string>

struct values {
    int a,b,c,d;
};

int main() {
    std::ifstream myfile("myfile.txt");
    std::vector<values> vect;

    // Format of text file is:
    // sdasjkdh234sldaksdj23asd125as24dfs
    // asdac5234sdf435ljk...35wsd63jj
    // asdad234sdf35gg567dfg554ddd


}
std::string line;

while(getline(cin, line))
{
    auto s = std::remove_if(line.begin(), line.end(), [](auto& c) { return !isdigit(c); });
    line.erase(s, line.end());
    vect.push_back(std::stoi(line));
}