http://blog.csdn.net/mafuli007/article/details/7314917
構造二維動態數組 需要注意delete時,要刪除兩次
輸入流,在做過各種操作後 要先close 再clear,因爲如果先clear,close時候有可能這個文件本來就不存在,造成falibit狀態變成錯誤。
瞭解seekg的復位功能
瞭解cout << typeid(d).name() << endl;可檢測變量的類型
http://blog.csdn.net/mafuli007/article/details/7314917
int main()
{
ifstream infile;
infile.open("test.txt");
int word_nums=0;
int line_num=0;
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;
}
}
cout<<line_num<<endl;
infile.seekg(0,ios::beg);
int word;
while(infile>>word)
{
++word_nums;
}
cout<<word_nums<<endl;
int *p=new int[word_nums];
//
// infile.close();
infile.clear();
// infile.open("test.txt");
infile.seekg(0,ios::beg); ///這個問題!!!!!!!!!但爲什麼這樣不行呢?
//感覺應該是由於 第一個seekg造成了 failbit狀態。。 因爲seekg是讀取二進制文件的?
for (int i=0;i!=word_nums;++i)
{
infile>>p[i];
}
cout<<endl;
for (int i=0;i!=word_nums;++i)
{
cout<<p[i]<<" ";
}
delete[] p;
infile.close();
infile.clear();
return 0;
}