I/O 文件操作

 

#include<iostream>

#include<vector>

#include<string>

#include <fstream>

#include <sstream>

using namespace std;

 

int FiletoVector(const string& ,vector<string> &);  //声明函数 

 

int main()

{

vector<string> svec;

string filename;

 

cout<<"Please enter the filename"<<endl;

cin>>filename;

    switch (FiletoVector(filename,svec))    //函数调用

{

case 0:

break;

case 1:

cout<<"open file fail"<<endl;

system("pause");

return 1;

case 2:

cout<<"系统故障"<<endl;

system("pause");

return 1;

case 3:

cout<<"读取数据失败"<<endl;

system("pause");

return 1;

}

 

string word;

istringstream stream;  //定义字符串流对象,用于逐一读取每个单词

for(vector<string>::iterator iter=svec.begin();iter!=svec.end();++iter)

{

stream.str(*iter);  //将*iter复制给stream

while(stream>>word) //读取每个string

{

cout<<word<<endl;

}

stream.clear(); //清空stream流

}

 

 

 

system("pause");

return 0;

}

int FiletoVector(const string& filename,vector<string>& svec)

{

ifstream infile;

string s;

 

infile.open(filename.c_str(),iostream::in);  //打开名字为 filename的文件

if(1!=infile.is_open())

return 1;

 

while(getline(infile,s)) //读取文件,每行数据都存在s中

svec.push_back(s);

infile.close();

 

if(infile.eof())  //遇到文件结束符

  return 0;

if(infile.bad()) //系统故障

return 2;

if(infile.fail()) //读入文件失败

return 3;

 

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值