首页 > 编程 > C++ > 正文

c++统计文件中字符个数代码汇总

2020-01-26 14:51:08
字体:
来源:转载
供稿:网友

我们先来看看下面的代码:

#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;}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表