Qualcosa del genere?
Potrebbe dare qualche problema con le lettere accentate se l'implementazione di locale non è fatta come Dio comanda.codice:#include <iostream> #include <string> #include <fstream> #include <locale> using namespace std; int main() { locale loc(""); string fileName; unsigned int wordCount=0, charCount=0; bool lastAlNum=false; cout<<"Nome file: "; getline(cin, fileName); ifstream is; is.open(fileName.c_str()); if(!is) { cerr<<"Impossibile aprire il file."<<endl; return 1; } while(is) { if(!use_facet< ctype<char> >(loc).is(ctype<char>::alpha | ctype<char>::digit,is.get())) { if(lastAlNum) wordCount++; lastAlNum=false; } else lastAlNum=true; charCount++; } is.close(); cout<<charCount<<" caratteri"<<endl; cout<<wordCount<<" parole"<<endl; return 0; }

Rispondi quotando