テキスト ファイルを読み取り、一意の単語をそれぞれカウントし、一意の単語のリストを並べ替えて、各単語の出現回数を一覧表示するプログラムを作成しようとしています。ただし、文字、数字、記号をめちゃくちゃにして読み取ることなく、文字列から単一の単語を読み取ることはできないようです。私は他のトピックを読んだことがありますが、私の論理には、私が見ていない何らかの方法で深刻な欠陥があります.
int main()
{
fstream fp;
string line;
fp.open("syllabus.txt", ios::in);
getline(fp, line);
string word = findWords(line);
cout << word << endl;
}
string findWords(string &line)
{
int j = 0;
string word;
for(int i = 0; i < line.size(); i++)
{
while(isalpha((unsigned char)line[j]) != 0 && isdigit((unsigned char)line[j]) != 1)
j++;
word += line.substr(0, j) + " + ";
line = line.substr(j, (line.size() - j));
}
return word;
}