回 帖 发 新 帖 刷新版面

主题:C++文件流问题:如题

#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;

//函数fileToVector打开文件用于输入

int fileToVector(string fileName,vector<string>& svec)
{
  //创建ifstream对象inFile并绑定到由形参fileName指定的文件夹
  ifstream inFile(fileName.c_str());
  if(!inFile)//打开文件夹失败
     return 1;
  //将文件内容读入到string类型的vector容器
  //每一行存储为该容器的一个元素
  string s;
  while(getline(inFile,s))
     svec.push_back(s);
  inFile.close();//关闭文件夹
  if(inFile.eof())//遇到文件结束符
     return 4;
  if(inFile.bad())//发生系统故障
     return 2;
  if(inFile.fail())//读入数据失败
     return 3;
}

int main()
{

  vector<string> svec;
  string fileName,s;
  //读入文件名
  cout<<"Enter filename:"<<endl;
  cin>>fileName;


  //处理文件
  switch(fileToVector(fileName,svec))

{
   case 1:
      cout<<"error:can not open file:"<<fileName<<endl;
      return -1;
   case 2:
      cout<<"error:system failure"<<endl;
      return -1;
   case 3:
      cout<<"error:read failure "<<endl;
      return -1;
}

//输出vector对象进行检查
cout<<"vector:"<<endl;
for(vector<string>::iterator iter=svec.begin();iter!=svec.end();++iter)
   cout<<*iter<<endl;

return 0;
};




这个代码是编译通过的、但是运行时无论输入什么文件名都提示打开错误。求高手讲解啊!这文件流绑定的文件有什么要求吗?还是哪里出售吗问题了?

回复列表 (共2个回复)

沙发

顶!

板凳

知道了、怎么忘了结贴了

我来回复

您尚未登录,请登录后再回复。点此登录或注册