Salve ragazzi, ho un piccolo problema che non so come risolvere. Ho questo codice che mi crea un anagramma di tutte le lettere di una stringa. Ad es, stringa di partenza:
123

ottengo

123
132
213
231
312
321


Il mio problema consiste nel fatto che, devo dare in pasto una stringa che contiene il carattere £, che una volta salvato su txt non viene riconosciuto correttamente, ma viene stampato così 123œ anzichè così 123£. Qualcuno mi aiuta a modificare il codice in modo da ottenere l'output giusto?

Grazie mille!


codice:
#include <string>
#include <iostream>
#include <stdio.h>
#include <fstream>
using namespace std;

void Anagramma(string A, string B)
{


ofstream file; //Dichiaro file
    file.open("tuo_file.dic", ios::app); //Apro il file in modalità append

       if (!file.is_open()) //Se il file non è stato aperto (il che potrebbe dire che è in uso o non esistente)
       {
               file.open("tuo_file.dic", ios::out); //Apro il file in modalità scrittura (riscrive il file da 0)
       }
       file.open
          
       	if (A.size() == 0) 
          {
           cout<< B<< endl; 
           file << B << endl;
           }
    else
	{
		string Doppie;
		for (int i = 0; i < A.size(); i++)
		{
			char temp[2];
			temp[0] = A[i]; temp[1] = '\0';
			if (Doppie.find(temp, 0) == string::npos)
			{
				A.erase(i, 1);
				Anagramma(A, B + temp);
				Doppie += temp;
				A.insert(i, temp);
	        }
        }
	} file.close(); //Chiudo il file
}
int main()
{
    
	string A;
	cin >> A;
    cout << endl;
    Anagramma(A, "");
    int O;
    cin >> O;


       return 0;
    
}