C++ Lecture de mots à partir d'un fichier texte, mot par mot ou char par char

J'ai cherché sur google et autour de la lecture par le biais de mon livre et d'essayer d'écrire le code pour lire un fichier texte et le processus des mots, un par un, afin que je puisse les mettre dans l'ordre alphabétique et de garder un décompte du nombre de mots utilisés et bien un mot a été utilisé. Je n'arrive pas à obtenir mon GetNextWord() fonctionne correctement et c'est me rend fou.

J'ai besoin de lire les mots, un par un, et de convertir chaque lettre en minuscule s'il est en majuscules. Qui je sais comment le faire, et l'ont fait avec succès. C'est juste à passer le mot, caractère par caractère et de le mettre dans une chaîne qui m'.

C'est mon plus récent essayer: Toute aide serait étonnant ou un lien vers un tutoriel sur la façon de lire à partir d'un fichier d'entrée de mot en mot. (Le mot en caractères alphabétiques (a-z et ' (ne pas) se sont terminées par des espaces, des virgules, période de, ; , : , ect....

void GetNextWord()
{
    string word = "";
    char c;

    while(inFile.get(c))
    {
        while( c > 64 && c < 123 || c == 39)
        {
            if((isupper(c)))
            {
                c = (tolower(c));
            }
            word = word + c;
        }
        outFile << word;
    }
}
Est sortie le problème?
Aussi, placer entre crochets dans votre, tandis que les conditions à définir clairement.
Ne t utiliser des numéros de magie, ils ne sont pas portables. L'utilisation de 'A' ou 'Z' ou quoi que 39 est censé être.
Apprendre à utiliser un débogueur, ou mettre std::cout << "c " << (int)c << '\n';, std::cout << "word is now '" << word << "'\n"; etc à l'intérieur de votre fonction, de sorte que vous pouvez voir chaque étape, c'est prenant. Compétences de résolution des problèmes sont beaucoup plus importantes qu'une réponse à cette question.
Le fichier contient les mots à mots (sens des mots qui vont partout des sauts de lignes)?

OriginalL'auteur MSwezey | 2010-09-15