主题:C++中文件流操作。
chuandaobozi
[专家分:0] 发布于 2011-12-17 23:35:00
使用c++从一个txt文件中(该文件中存储了50*70的字符(单个字母),),要从中读取到一个二维字符数组中去,请问具体的实现方法,请用C++中文件流中的方法,不要用C语言里面的,拜托了
回复列表 (共2个回复)
沙发
552158509 [专家分:0] 发布于 2012-01-13 17:43:00
不喜欢不劳而获,因此留下参考,希望能帮到你:
#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;
};
板凳
lostfive [专家分:30] 发布于 2012-01-15 02:56:00
要代码也拜托题目说清楚点 拜托了。。。
我来回复