c++统计文件中字符个数代码汇总
发布时间:2020-12-16 03:02:07 所属栏目:百科 来源:网络整理
导读:我们先来看看下面的代码: #includeiostream#includefstream#includecstdlibusing namespace std;class CntCharacters{private: int cnt;public: CntCharacters():cnt(0){} ~CntCharacters(){} void opentxt(char* p) { ifstream fin; fin.open(p,ios_base::
我们先来看看下面的代码: #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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |