:到底怎么传参数最好啊????????怎么求行数最好???
#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(),' ');//不考虑每行的空格 制表符 \n
remove(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;
}