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;
}