我们先来看看下面的代码:
#include<iostream>#include<fstream>#include<cstdlib>using namespace std;class CntCharacters{private: int cnt;public: CntCharacters():cnt(0){} ~CntCharacters(){} void opentxt(char* p) { ifstream fin; fin.open(p,ios_base::in); if(!fin.is_open()) { cout<<"cannot open the file,Please make sure the file is exist!/n"; exit(-1); } char temp; while(!fin.eof()) { fin>>temp; if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z'))cnt++; } } void countthecharacter() { int count=0; char nameoffile[80]; cout<<"Please enter the name of file:"; cin>>nameoffile; // scanf("%s",nameoffile); opentxt(nameoffile); } void dis() { cout<<cnt<<endl; }};int main(){ CntCharacters* c=new CntCharacters; c->countthecharacter(); c->dis(); delete c;return 0;}
网上大神的简单代码
#include<iostream>#include<fstream>using namespace std;int main(){ fstream f("test.txt",ios::in); char c; int n=0; while(f.get(c))n++; cout<<n<<endl; f.close(); return 0; }
上面那方法会计算空格和换行,如果不想要换行和空格,可以这样:
#include<iostream>#include<fstream>using namespace std;int main(){ fstream f("test.txt",ios::in); char c; int n=0; while(f>>c)n++; cout<<n<<endl; f.close(); return 0; }
好了,最后来看一下项目中使用到的代码
//countch.cpp#include <iostream>#include <fstream>#include <string>using namespace std;int main(int argc, char* argv[]){ ifstream fin(argv[1]); if (!fin) { cout << "Can't open file - " << argv[1] << "/nUseage : countch filename" << endl; return 1; } string d; int count = 0; while ( getline(fin, d) ) //以行为单位读入文件 count += d.size(); //累计字符数 cout << "/n Number of characters : "<< count << endl;}
新闻热点
疑难解答
图片精选