c++ - 将数据存储到多维数组中

标签 c++ arrays pointers multidimensional-array

我需要一些帮助。我正在尝试从文件中读取。该文件包含以下内容:

1x+1y+1z=5
2x+3y+5z=8
4x+0y+5z=2

我想将其存储到一个二维数组中。行为 3,列始终为 4。我只想存储整数值,在本例中为 1 1 1 5 2 3 5 8 4 0 5 2。如何将这些值存储到数组中?这是我尝试做的,但没有用。感谢您的帮助。

int main(){

    fstream file;


    file.open("matrix.txt", ios::in);



    int arr[3][4];


        // copy integers into array and display
        for (int i = 0; i < 3; i++){
            for(int j= 0; j < 4; j++){
            file >> arr[i][j];
            cout << arr[i][j];
            }
        }




}

最佳答案

您需要先从每个方程中提取数字,然后将它们存储在数组中。我将向您展示如何提取这些数字,我想剩下的就很简单了。

#include <iostream>
#include <string>
using namespace std;


void getNumbers(string str, int&x, int&y, int& z)
{
    string X, Y, Z;

    size_t idx = str.find("x");
    size_t idy = str.find("y");
    size_t idz = str.find("z");

    X = str.substr(0, idx);
    Y = str.substr(idx+1, idy-(idx+1));
    Z = str.substr(idy+1, idz-(idy+1));

    x = stoi(X);
    y = stoi(Y);
    z = stoi(Z);
}

int main()
{
    string line("2x+82y-12z=5");

    int x(0), y(0), z(0);
    getNumbers(line,x,y,z);
    cout << line << endl;
    cout << x << "  " << y << "  " << z << endl;
    return 0;
}

结果是

2x+82y-12z=5
2  82  -12

关于c++ - 将数据存储到多维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46518884/

相关文章:

c++ - 我可以检查 C++ 迭代器是否为 null 吗?

Java 2D 数组不会给出总计

C# Monogame - 从文件加载关卡

c - 为什么这个 *ptr 不给出存储在 ptr 变量中包含的内存地址处的实际值?

c++ - 错误 C2078 : too many initializers

java - 将 JSON 数组数据分组并计算是否有两个相同的值

c++ - address of operator 可以初始化一个指针但是填充的值是垃圾

c++ - 为什么这个简单的 lambda 在 std::thread 中始终比在 gcc 4.9.2 的 main 函数中运行得更快?

c++ - Visual Studio Copy Local on reference 不起作用

c++ - 类模板和函数模板的区别