Salve a tutti, vorrei un aiuto per questo programma:
il programma dovrebbe chiedere un file di testo contare quante volte una parola si presente e metterla in una lista... il programma che ho scritto è questo... c'è qualcuno che è in grado di aiutarmi per farlo funzionare??
#include <iostream>
#include <fstream>
using namespace std;
struct struttura {
char parola[30];
int occorrenza;
struttura* succ;
};
typedef struttura* lista;
// vorrei che questa procedura mi restituisse un vettore di caratteri
// in particolare il vettore appoggio che mi servirà per inserirlo in una
//lista;
char leggi_parola (char nomefile[]) {
fstream input;
char c;
char appoggio[50];
int i=0;
input.open(nomefile,ios::in);
while (!input.eof()) {
while (c!=' ' && c!='.') {
input.get(c);
appoggio[i]=c;
}
return appoggio;
}
input.close();
}
void inserimento_ordinato(lista&inizio, struttura a) {
lista p=0; q,r;
for (q=inizio; q!=0;q=q->succ)
p=q;
//qui vorrei confrontare la parola presa dal puntatotore q
// e se esiste incrementare il conteggio, altrimenti creare un file in lista;
if (strcmp(q->parola,a.parola)) *q.occorrenze++;
else
r=new struttura;
*r=a;
r->succ=q;
if (q=inizio) inizio=r;
else p->succ =r;
}
int main () {
lista inizio=0;
char filein [15];
struttura e;
cout << "Inserisci il file da aprire";
cin >> filein;
//qui l'intenzione è che finchè la funzione va, deve assegnare la parola
//alla sruttura a che mi serve per metterla in lista
while (leggi_parola(filein)) {
a.parola= leggi_parola(filein);
inserimento_ordinato(inizio,a);
}
return 0;
}
grazie a tutti per l'aiuto"