Purtroppo non conosco la multimap, e sono convinto che sarebbe più semplice, però vorrei riuscire a capire perchè non riesco a farlo in questo modo.
codice:
#include <iostream>
#include <string>
#include <fstream>
using namespace std ;
fstream input;
void anagramma(string radice, string s, int livello)
{
char parola[30];
string q;
for (int i = 0; i < s.size(); i++)
{
string t = radice + s[i];
if (t.size() == livello)
{
while(input.eof()){
input.getline(parola, 30);
q.assign(parola);
if(q.compare(t)==0)
cout << t << endl ;
}
}
anagramma(t, s.substr(0, i) +
s.substr(i + 1), livello);
}
}
void calcola_anagrammi(string s)
{
anagramma("", s, s.size());
}
int main()
{
string my_string;
input.open("words.italian.txt", ios::in);
cout << "Inserire la stringa da anagrammare : ";
cin >> my_string;
calcola_anagrammi(my_string);
return 0 ;
}
Così non mi da nessun anagramma, quindi il controllo non va bene, ma in altri programmi che ho fatto questo controllo andava bene, non capisco come mai.