我遇到了一个错误,我不知道如何在有关读取文本文件并将标记放入多维 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/