c++ - 如何从文本文件中取出标记并将其放入二维矩阵中?

标签 c++ string vector matrix text-files

我遇到了一个错误,我不知道如何在有关读取文本文件并将标记放入多维 vector 的程序中修复。

我的错误是: 字符* 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);
                    }
                }
            }
        }
    }

任务是从文本文件中取出标记,并将它们很好地放入二维字符串 vector (10x10 矩阵)中。 当我想将标记 push_back 到 2D 矩阵时,char* 标记与表达式不兼容。 谁能帮我修复 char* token 错误?

P.S 对不起,如果我没有最好的专业代码,但我是 C++ 的初学者,我没有参加任何大学水平的编程类(class)。

最佳答案

这将是您出错的原因。

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

改成

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

你应该没事的。您的 my_matrix 包含字符串 vector 的 vector ,而 token 是一个字符指针。

关于c++ - 如何从文本文件中取出标记并将其放入二维矩阵中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822600/

相关文章:

java - Swig:将返回类型 std::string 转换为 java byte[]

c - "incompatible type for argument 1 of ‘strcpy’ “C 中的错误

c++ - 继承 C++ 接口(interface)和 LSP 冲突

c++ - 带点的预处理器宏?

java - 为以下内容创建了多少个字符串对象?

python - 类型错误 : 'str' does not support the buffer interface

c++ - 复制模板化 vector

c++ - 无法访问成对 vector 中的值

delphi - 如何旋转 TPathData(矢量路径)?

c++ - 静态数组 VS。 C++11 中的动态数组