c++统计文件中字符个数代码汇总
我们先来看看下面的代码:
#include<iostream> #include<fstream> #include<cstdlib> usingnamespacestd; classCntCharacters { private: intcnt; public: CntCharacters():cnt(0){} ~CntCharacters(){} voidopentxt(char*p) { ifstreamfin; fin.open(p,ios_base::in); if(!fin.is_open()) { cout<<"cannotopenthefile,Pleasemakesurethefileisexist!\n"; exit(-1); } chartemp; while(!fin.eof()) { fin>>temp; if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z'))cnt++; } } voidcountthecharacter() { intcount=0; charnameoffile[80]; cout<<"Pleaseenterthenameoffile:"; cin>>nameoffile; //scanf("%s",nameoffile); opentxt(nameoffile); } voiddis() { cout<<cnt<<endl; } }; intmain() { CntCharacters*c=newCntCharacters; c->countthecharacter(); c->dis(); deletec; return0; }
网上大神的简单代码
#include<iostream> #include<fstream> usingnamespacestd; intmain() { fstreamf("test.txt",ios::in); charc; intn=0; while(f.get(c))n++; cout<<n<<endl; f.close(); return0; }
上面那方法会计算空格和换行,如果不想要换行和空格,可以这样:
#include<iostream> #include<fstream> usingnamespacestd; intmain() { fstreamf("test.txt",ios::in); charc; intn=0; while(f>>c)n++; cout<<n<<endl; f.close(); return0; }
好了,最后来看一下项目中使用到的代码
//countch.cpp #include<iostream> #include<fstream> #include<string> usingnamespacestd; intmain(intargc,char*argv[]) { ifstreamfin(argv[1]); if(!fin){ cout<<"Can'topenfile-"<<argv[1] <<"\nUseage:countchfilename"<<endl; return1; } stringd; intcount=0; while(getline(fin,d))//以行为单位读入文件 count+=d.size();//累计字符数 cout<<"\nNumberofcharacters:"<<count<<endl; }