Я пытаюсь создать простое приложение на C++. Это приложение должно читать из файла и отображать данные. Я написал функцию:Как преобразовать тип из const char * в char *
std::vector <AndroidApplication> AndroidApplication::getAllApp(){
std::vector<AndroidApplication> allApp;
std::fstream f;
f.open("freeApps.txt");
std::string line;
if(f.is_open()){
while(getline(f, line)) {
std::string myLine = "";
char * line2 = line.c_str();
myLine = strtok(line2,"\t");
AndroidApplication * tmpApp = new AndroidApplication(myLine[1], myLine[2], myLine[4]);
tmpApp->Developer = myLine[0];
tmpApp->Pop = myLine[3];
tmpApp->Type = myLine[5];
allApp->pushBack(tmpApp);
}
}
return allApp;
}
Он бросает мне ошибку в строке:
myLine = strtok(line2,"\t");
Ошибка:
cannot convert from 'const char *' to 'char *'
Не могли бы вы сказать мне, как я могу справиться с этим?
Чтобы решить вашу проблему, не смешивайте строки и массивы char. – mydogisbox
Реальный ответ - не использовать strtok, как говорит Пол, но если вы действительно этого хотите, сделайте копию строки, например, с помощью strdup. Но не забудьте освободить память, когда закончите! –