C++ 使用重定向的stdinc+读取文件+;

C++ 使用重定向的stdinc+读取文件+;,c++,parsing,stdin,C++,Parsing,Stdin,你好。如何逐行读取文件并将其放入数组中,我遇到了一个相当大的问题。我们被要求使用这个命令行参数从文本文件中获取所需的数据 program.exe < input.txt 我将如何解析它,其中整数将分别是行和列的值,“*”和“.”应该进入2d数组?谢谢你的回答 您可以简单地使用两个ints来存储行数和列数,使用std::vector的std::string来存储字符 代码: 使用名称空间std; int main() { int row,col; cin>>行>>列; 向量m(行); 对于

你好。如何逐行读取文件并将其放入数组中,我遇到了一个相当大的问题。我们被要求使用这个命令行参数从文本文件中获取所需的数据

program.exe < input.txt

我将如何解析它,其中整数将分别是行和列的值,“*”和“.”应该进入2d数组?谢谢你的回答

您可以简单地使用两个
int
s来存储行数和列数,使用
std::vector
std::string
来存储字符

代码:

使用名称空间std;
int main()
{
int row,col;
cin>>行>>列;
向量m(行);
对于(int i=0;i>m[i];
}
编辑: 由于您不知道何时需要输入多少字符表,下面是更新的代码。 代码:

使用名称空间std;
int main()
{
int row,col;
//这是存储主要数据的地方。
维克托;
//如果遇到EOF,此操作将终止。
而(cin>>行)
{
cin>>col;
//用于输入数据的临时向量。
向量温度(世界其他地区);
对于(int i=0;i>温度[i];
}
m、 推回(温度);
}
//用“m”做你想做的事。
//您可以使用m[n-1]访问第n个实例。
}

谢谢您的回答,但是如果有更多类似于上述的数据呢?例如:4。。。。2 2 .. .* 我尝试循环它,但它没有终止。我已经编辑了我的答案。试试这个,如果出现任何问题,请告诉我。
4 4
*...
....
.*..
....
using namespace std;
int main()
{
    int row, col;
    cin>>row>>col;
    vector<string> m(row);
    for(int i = 0; i < row; ++i)
        cin>>m[i];
}
using namespace std;
int main()
{
    int row, col;
    //This is where your main data is stored.
    vector<vector<string> >m;
    //This will terminate if EOF is encountered.
    while (cin >> row)
    {
        cin>>col;
        //A temporary vector to enter your data.
        vector<string> temp(row);
        for (int i = 0; i < row; ++i)
        {
            cin>>temp[i];
        }
        m.push_back(temp);
    }
    //Do what you want with 'm'.
    //You can access the nth instance using m[n-1].
}