J'apprends le C++ et développe un projet à pratiquer, mais maintenant je veux transformer une variable (String) en code, comme ça, l'utilisateur a un fichier qui contient du code C++, mais je veulent que mon programme lit ce fichier et l'insérer dans le code, comme ceci:Convertir une chaîne en code C++
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[])
{
ifstream file(argv[ 1 ]);
if (!file.good()) {
cout << "File " << argv[1] << " does not exist.\n";
return 0;
}
string linha;
while (!file.eof())
{
getline(file, linha);
if (linha.find("code") != string::npos)
{
size_t idx = linha.find("\""); //find the first quote on the line
while (idx != string::npos) {
size_t idx_end = linha.find("\"",idx+1); //end of quote
string quotes;
quotes.assign(linha,idx,idx_end-idx+1);
// do not print the start and end " strings
cout << quotes.substr(1,quotes.length()-2) << endl;
//check for another quote on the same line
idx = linha.find("\"",idx_end+1);
}
}
}
return 0;
}
et voici un fichier exmaple:
code "time_t seconds;\n seconds = time (NULL);\n cout << seconds/3600;"
Mais quand je lance le programme, il ne Covert la chaîne dans le code, mais il imprime exactement ce qui est dans les citations.
Merci!
Mais comment je peux le faire sans cout, faire une injection de code. Merci! –
avec mon code qui est dans la question! –