计算文本单词数、行数,并创建一维数组

来源:互联网 发布:淘宝店怎么才能有人气 编辑:程序博客网 时间: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; }

原创粉丝点击