非原创,参考大部分优快云大佬代码。
#include <iostream>
#include <fstream>
using namespace std;
bool isLetter(char letter) { //判断字符是不是字母
if ((letter >= 'a' && letter <= 'z') || (letter >= 'A' && letter <= 'Z')) {
return true;
}
else {
return false;
}
}
int main()
{
ifstream infile("novel.txt");
if (!infile)
{
cerr << "open novel.txt error!" << endl;
exit(1);
}
char ch[100];
infile.getline(ch, 100);
int count = 0;
while (ch[0] != '\0') {
cout << ch<<endl;
int i = 0;
while (ch[i] != '\0') {
//如果起一个字符是字母后一个字符不是字母,那么就可以看成此处有一个单词
if (isLetter(ch[i]) && !isLetter(ch[i + 1]))
{
count++;
}
i++;
}
infile.getline(ch, 100);
}
infile.close();
ofstream outfile("file.txt");
if (!outfile)
{
cerr << "open file.txt error!" << endl;
exit(1);
}
outfile<< "总字母为:" << count << endl;
cout <<"总字母为:" <<count << endl;
outfile.close();
return 0;
}