计算文本单词数、行数,并创建一维数组
来源:互联网 发布:淘宝店怎么才能有人气 编辑:程序博客网 时间:2024/05/16 11:00
:到底怎么传参数最好啊????????怎么求行数最好???
#include <iostream>#include <fstream>#include <iomanip>#include <Windows.h>#include<string>#include <algorithm>#include <istream>#include <cstdio>#include <vector>using namespace std;////////////////////////////////////////////////////////////////////////////读取文本的行列 并输入动态数组中。。static int word_nums=0;static int line_num=0;inline void read_file(istream& infile,int* &array){if (!infile){cerr<<"can't open file: "<<infile<<endl;} string str;while(!infile.eof()){getline(infile,str);remove(str.begin(),str.end(),' ');//不考虑每行的空格 制表符 \nremove(str.begin(), str.end(), '\t');if (str.length()>0){++line_num;}}infile.seekg(0,ios::beg);int word;while(infile>>word) {++word_nums;} infile.clear();infile.seekg(0,ios::beg); ///这个问题!!!!!!!!!但为什么这样不行呢?//感觉应该是由于 第一个seekg造成了 failbit状态。。 因为seekg是读取二进制文件的?array=new int[word_nums];for (int i=0;i!=word_nums;++i){infile>>array[i];}} int main() { ifstream infile; infile.open("test.txt");//int *p=new int[word_nums]; int *p=NULL; read_file(infile,p);//creat_array(infile,p); cout<<line_num<<endl; cout<<word_nums<<endl; cout<<endl; for (int i=0;i!=word_nums;++i) { cout<<p[i]<<" "; } delete[] p; infile.close(); infile.clear(); return 0; }