C++ji将txt文件数据zzhua转为数组;

想通过定义文件输出处理方法,将文件数据用数组1表示出来;
然后,定义一个二维数组2,根据条件获取数组1中值

#include <iostream>
#include <fstream>
#include <cassert>
#include <string>
#include <vector>
#include <regex>
#include <Windows.h>

using namespace std;
int main()
{
    ifstream infile; 
    infile.open("input.txt");   //将文件流对象与文件连接起来 
    assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行 

    vector<vector<int>> q;
    vector<int>temp_line;
    string line;
    regex pat_regex("[[:digit:]]+");
    ifstream in("input.txt");
    int lines=0;
    while(getline(in,line))
    {
        for (sregex_iterator it(line.begin(), line.end(), pat_regex), end_it; it != end_it; ++it)
        {
            temp_line.push_back(stoi(it->str()));
        }
        q.push_back(temp_line);
        temp_line.clear();
        lines+=1;//获取文件总行数
    }
    in.close();
    cout<<lines;

    int N=558;//定义数组维度
    vector<vector<int> >B(N,vector<int>(N));//定义一个二维动态数组B[N][N]

    for (int m=0;m<N;m++)
    {
        for(int n=0;n<N;n++)
        {
            B[m][n]=-1;
            for (int i=0;i<lines;i++)
            {
                if (q[i][0]==m &&q[i][1]==n )
                {
                    B[m][n]=q[i][2];
                    Sleep(3000);//获取正常值停留3秒,以检查数组获取值的结果
                }
            }
            std::cout<<"B["<<m<<"]["<<n<<"] :    "<<B[m][n]<<endl;//输出数组
        }
    }
    return 0;
}

数据文件如下,对于第一行,我需要得到的数组是B[24][27]=15,
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40537081/article/details/80984300