4.6

/*
*编写函数打开文件用于输入,、
*将文件内容读入string类型的vector容器,
*每一行存储为该容器对象的一个元素
*/

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;

int fileToVector(string fileName, vector<string>& svec)
{
//创建ifstream对象inFile并绑定到由形参fineName指定的文件
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 to open file :"
<< fileName << endl;
return -1;

case 2:
cout << "error:system failure"<< endl;
return -1;

case 3:
cout << "error:read failure" << endl;
return -1;
}

//使用istringstream从vector里每次读一个单词的形式读取所存储的行
string word;
istringstream isstream;


for(vector<string>::iterator iter =svec.begin();iter != svec.end();++iter)
{
//将vector对象的当前元素复制给istringstream对象
isstream.str(*iter);
//从istringstream对象中读取单词并输出
while(isstream >> word)
{
cout <<word << endl;
}

isstream.clear();//将istringstream流置为有效状态

}

system("pause");
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值