c++统计文件中字符个数代码汇总
投稿:hebedich
本文给大家汇总介绍了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; }