本文给大家汇总介绍了3种使用C++实现统计文件中的字符个数的方法,非常的简单实用,有需要的小伙伴可以参考下。
我们先来看看下面的代码:
- #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;
- }
新闻热点
疑难解答