[C++] 通过文件名逐个逐个读取文件 →→→→→进入此内容的聊天室

来自 , 2019-07-05, 写在 C++, 查看 126 次.
URL http://www.code666.cn/view/e06f967f
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5. using namespace std;
  6.  
  7. int fileToVector(string fileName)
  8. {
  9.         ifstream infile(fileName.c_str());
  10.         if (!infile)
  11.                 return 1;
  12.         string s;
  13.         vector<string> svec;
  14.         while (getline(infile,s))//infile>>s  前者是输出一行一行的文本,用这个只是输出一个一个的单词
  15.                 svec.push_back(s);
  16.         infile.close();
  17.         infile.clear();
  18.         if (infile.eof())
  19.                 return 4;
  20.         if (infile.bad())
  21.                 return 2;
  22.         if (infile.fail())
  23.                 return 3;
  24.         for (vector<string>::iterator it = svec.begin(); it != svec.end(); ++it)
  25.                 cout<<*it<<endl;
  26. }
  27. int main()
  28. {
  29.         vector<string> files;
  30.         string fileName;
  31.         cout<<"Enter fileName:(Ctrl+Z to end)"<<endl;
  32.         while (cin>>fileName)
  33.                 files.push_back(fileName);
  34.        
  35.         vector<string>::iterator iter = files.begin();
  36.         while (iter != files.end())
  37.         {
  38.                 switch(fileToVector(*iter))
  39.                 {
  40.                 case 1:
  41.                         cout<<"error: can not open file:" <<*iter<<endl;
  42.                         break;
  43.                 case 2:
  44.                         cout<<"error:system failure"<<endl;
  45.                         break;
  46.                 case 3:
  47.                         cout<<"error:read failure" <<endl;
  48.                         break;
  49.                 default:
  50.                         break;
  51.                 }
  52.                 ++iter;
  53.         }
  54.         return 0;
  55. }
  56.  

回复 "通过文件名逐个逐个读取文件"

这儿你可以回复上面这条便签

captcha