私は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を使って文字列のコピーを作ることです。しかし、完了したら記憶を解放することを忘れないでください! –