J'essaie de convertir un fichier Windows (format CP1252) en format UTF-8 pour une application Linux. Je veux exécuter la commande suivante dans le cadre de mon application C++:Exécution de la commande 'iconv' pour un fichier transmis comme arguments de fonction dans l'application C++
iconv -f CP1252 -t UTF-8 file.ldf |dos2unix > out.ldf
Le nom du fichier file.ldf
sera transmis comme argument à la main()
.
par ex.
int main (int argc, char* argv[])
{
string FileName = "Invalid";
if (argc == 2) {
FileName = argv[1];
system("iconv -f CP1252 -t UTF-8 file.ldf |dos2unix > out.ldf");
//do further parsing on file
}
else
cout << "ERROR:: invalid number of arguments"<< endl;
return 0;
}
Le problème que je suis confronté est actuellement à passer le filename
entrant dans le cadre de la commande à exécuter en utilisant l'API system
.
Existe-t-il un autre moyen de résoudre ce problème?
Vous * savez * que vous pouvez ajouter des chaînes en utilisant l'opérateur '+'? Comme par exemple "" iconv -f CP1252 -t UTF-8 "+ NomFichier +" | dos2unix> out.ldf "' –
aargh !! Je réalise maintenant que c'est une question stupide en effet. :( – user3098732