Buenas.
En C++ un literal cadena ( "algo entre comillas dobles") devuelve un puntero
por lo que al hacer estas haciendo una suma de puntero, algo que no esta permitido y en caso de que lo estubiese, el resultado no seria el que eesperas.
"archivos/" + tituloScript + ".txt"
si existe una sobrecarga de open que hacepte una obejto string, podrias ahcer:
string path("archivos/");
path += tituloScript;
path += ".txt";
miScript.open(path);
sino tendrias que crear un vector de char y meter el path completo, y pasarle ese paramtero a open:
char path[50] = "archivos/";
strcat(path, tituloScript);
strcat(path, ".txt");
miScript.open(path);
Saludos