本文給大家匯總介紹了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;
- }
新聞熱點
疑難解答