回 帖 发 新 帖 刷新版面

主题:C++中文件流操作。

使用c++从一个txt文件中(该文件中存储了50*70的字符(单个字母),),要从中读取到一个二维字符数组中去,请问具体的实现方法,请用C++中文件流中的方法,不要用C语言里面的,拜托了

回复列表 (共2个回复)

沙发

不喜欢不劳而获,因此留下参考,希望能帮到你:

#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;
};

板凳

要代码也拜托题目说清楚点 拜托了。。。

我来回复

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