Oppure

Loading
25/04/07 18:45
XplosiveHacker
salve a tutti, mi servirebbe una mano su questo pezzo di codice che non reisco a far funzionare:
//conteggio caratteri
int conteggio()
{

cout<<"***********************Conteggio Caratteri***********************\n\n";
ifstream file (archivio);
while(!file.eof())
{ if(file.eof());
else
{ c=file.get();
fq[c]++;
}
}
cout<<"Caratteri"<<" "<<"Frequenze\n\n";
for (c=1;c!=253;c++)
{
cout<<c<<" "<<fq[c]<<endl;
}
file.close();

}

praticamente dovrebbe farmi visualizzare le frequenze dei caratteri all'interno di un file di testo, ma 1 nn me le calcola, e 2 mi va in loop.
Potete darmi una mano ??
Grazie.
aaa
25/04/07 19:18
cH!cus
Se ho capito bene deve aprire un certo file e contare quante volte le lettere compaiono? Tipo quante lettere A ci sono... quante B.... quante C ecc?
aaa
25/04/07 19:28
XplosiveHacker
si, è quello che fa il programma, calcola che questa è solo una funzione di tutto il programma, se vuoi te lo posto tutto quanto se è necessario...grazie!!!
aaa
26/04/07 10:28
cH!cus
Ho codato questo "grezzo" esempio, cmq funziona, calcola il numero di ogni occorrenza di ogni lettera e poi alla fine fa il resoconto.

#include <iostream>
#include <fstream>
#include <cctype>

#define LETTERE_ALFABETO 26

using namespace std;

int main () {
  char c;
  int nLettere[LETTERE_ALFABETO];
  ifstream is;  
  
  is.open("prova.txt");
  
  for (c=0;c < 26;c++)
      *(nLettere+c) = 0;

  while (!is.eof())
  {
    c = is.get();
    
    switch(tolower(c)) {
              case 'a': (*(nLettere+0))++; break;
              case 'b': (*(nLettere+1))++; break;
              case 'c': (*(nLettere+2))++; break;
              case 'd': (*(nLettere+3))++; break;
              case 'e': (*(nLettere+4))++; break;
              case 'f': (*(nLettere+5))++; break;
              case 'g': (*(nLettere+6))++; break;
              case 'h': (*(nLettere+7))++; break;
              case 'i': (*(nLettere+8))++; break;
              case 'j': (*(nLettere+9))++; break;
              case 'k': (*(nLettere+10))++; break;
              case 'l': (*(nLettere+11))++; break;
              case 'm': (*(nLettere+12))++; break;
              case 'n': (*(nLettere+13))++; break;
              case 'o': (*(nLettere+14))++; break;
              case 'p': (*(nLettere+15))++; break;
              case 'q': (*(nLettere+16))++; break;
              case 'r': (*(nLettere+17))++; break;
              case 's': (*(nLettere+18))++; break;
              case 't': (*(nLettere+19))++; break;
              case 'u': (*(nLettere+20))++; break;
              case 'v': (*(nLettere+21))++; break;
              case 'w': (*(nLettere+22))++; break;
              case 'x': (*(nLettere+23))++; break;
              case 'y': (*(nLettere+24))++; break;
              case 'z': (*(nLettere+25))++; break;
    }
  }
  
  cout << "A: " << *(nLettere+0) << endl
       << "B: " << *(nLettere+1) << endl
       << "C: " << *(nLettere+2) << endl
       << "D: " << *(nLettere+3) << endl
       << "E: " << *(nLettere+4) << endl
       << "F: " << *(nLettere+5) << endl
       << "G: " << *(nLettere+6) << endl
       << "H: " << *(nLettere+7) << endl
       << "I: " << *(nLettere+8) << endl
       << "J: " << *(nLettere+9) << endl
       << "K: " << *(nLettere+10) << endl
       << "L: " << *(nLettere+11) << endl
       << "M: " << *(nLettere+12) << endl
       << "N: " << *(nLettere+13) << endl
       << "O: " << *(nLettere+14) << endl
       << "P: " << *(nLettere+15) << endl
       << "Q: " << *(nLettere+16) << endl
       << "R: " << *(nLettere+17) << endl
       << "S: " << *(nLettere+18) << endl
       << "T: " << *(nLettere+19) << endl
       << "U: " << *(nLettere+20) << endl
       << "V: " << *(nLettere+21) << endl
       << "W: " << *(nLettere+22) << endl
       << "X: " << *(nLettere+23) << endl
       << "Y: " << *(nLettere+24) << endl
       << "Z: " << *(nLettere+25) << endl
       << endl;
       
  is.close();
  
  system("pause");
  return 0;
}



Ho fatto copia & incolla dall'editor di Devcpp, deve funzionare per forza. Per provarlo basta che crei un file prova.txt, ci scrivi cosa ti pare e poi fai partire il prog.

Fammi sapè, ciau.;)
aaa