繁体   English   中英

如何从文本文件中获取令牌并将其放入二维矩阵?

[英]How to get the tokens out of a text file and put it into a 2-D matrix?

我遇到一个错误,我不知道如何在程序中修复有关读取文本文件并将令牌放入多维矢量的问题。

我的错误是:char * token错误:类型为“ char *”的参数与类型为“ char”的参数不兼容。

这些代码是:

    std::vector< vector <std::string> > my_matrix(10, vector <std::string>(10));

    ifstream myReadFile;
    myReadFile.open("class_data.txt", ios_base::in);
    char output[100];
    if (myReadFile.is_open()) {
        while (myReadFile >> output) {
            myReadFile >> output;

            char* token = NULL;
            char* context = NULL;
            char delims[] = " ,\t\n";

            token = strtok_s(output, delims, &context);

            while (token != NULL)
            {
                for (int i = 0; i < 10; i++) {
                    for (int j = 0; j < 10; j++) {
                        my_matrix[i][j].push_back(token);
                        token = strtok_s(NULL, delims, &context);
                    }
                }
            }
        }
    }

任务是将标记从文本文件中取出,并将其很好地放入字符串的二维向量中(10x10矩阵)。 当我想将令牌推回2D矩阵中时,char *令牌与表达式不兼容。 谁能帮我解决char *令牌错误?

PS对不起,如果我没有最好的专业代码,但是我是C ++的初学者,并且没有参加任何大学水平的编程课程。

这将是导致您出错的原因。

my_matrix[i][j].push_back(token);

更改为

my_matrix[i][j].push_back(*token);

你应该没事的。 您的my_matrix拥有字符串向量的向量,而token是char指针。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM