Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
salve a tutti. mi scuso per aver scritto male il titolo del topic la scorsa volta.
volevo chiedervi un parere. devo fare un programma che calcoli le frequenze delle lettere in un file di testo.
ho in mente due modi uno di prendere un carattere per volta e confrontarlo con un vettore di ascii l'altra idea č quella di mettere tutto il file in un vettore per poi ordinarlo e confrontare ogni elemento con il vettore di carattere ascii. secondo me quest'ultimo modo č piu veloce in fase di elaborazione visto che una volta trovato un carattere essendo il vettore del file ordinato nn andro piu a cercare quel carattere. secondo voi?? sono ben accetti altri consigli. grazie.
Io farei cosė: dichiarare un array int ASCII[255]; e, man mano che leggi ogni carattere c, esegui quest'operazione:
ASCII[c]++;
In questo modo hai per ogni carattere della tabella ASCII il numero di frequenze.
Io farei cosė: dichiarare un array int ASCII[255]; e, man mano che leggi ogni carattere c, esegui quest'operazione:
ASCII[c]++;
In questo modo hai per ogni carattere della tabella ASCII il numero di frequenze.
io devo stampare ogni carattere ascii con le rispettive frequenze percio nn mi servirebbe una matrice in modo che da una parte ce l'ascii e dall'altra le rispettive frequenze?? il tuo modo nn l'ho capito scusa l'ignoranza mi potresti scrivere come sarebbe il codice cosi lo provo e lo capisco meglio grazie mille....
In questo modo, quando si presenta il carattere '1', per esempio, ASCII[c]++ significa ASCII[48]++, e cosė hai il numero di frequenze per ogni carattere della tabella ASCII estesa.
Ultima modifica effettuata da Reese il 04/04/2007 alle 12:21
In questo modo, quando si presenta il carattere '1', per esempio, ASCII[c]++ significa ASCII[48]++, e cosė hai il numero di frequenze per ogni carattere della tabella ASCII estesa.
ciao.. senti ho provato ma a me non funziona sicuramente sono io che non sono capace di farlo funzionare se ti va vedi tu cosa ha il codice che ti scrivo qua sotto:
#include <iostream>
#include <fstream.h>
#include <stdlib.h>
using namespace std;
fstream file; //variabile globale
main()
{
char percorso_file[60]; //vettore percorso file per inserimento
char c; //carattere per il cin.get
cout<<"inserici il percorso file desiderato\n";
cin.getline(percorso_file,60);
cout<<"inserisci un testo terminato da '/'\n";
fstream file(percorso_file,ios::out);
while((c=cin.get()) != '/')
{
file<<c;
}
file.close();
int ASCII[255]={0};
ifstream input("path");
while (!input.eof()){
c = input.get();
ASCII[c]++;
}
input.close();
int i;
for(i=0;i<=255;i++) cout<<ASCII<<endl;
}
Io avevo scritto input("path"), intendendo con "path" il percorso del film che tu hai in un array. Poi, quando stampi i valori, devi scrivere ASCII o *(ASCII+i)