65,211
社区成员
发帖
与我相关
我的任务
分享
#include <sstream>
#include <vector>
#include <fstream>
#include <string>
#include "8.13.h"
#include <iostream>
using namespace std;
int fileToVector(string fileName, vector<string>& vec)
{
ifstream fin;
string line;
vector<string>::iterator it=vec.begin();
open_file(fin, fileName);// 打开文件
if(!fin)// 若打开文件失败
{
return 1;
}
while(getline(fin,line))// 读文件直到文件结束符
{
vec.push_back(line);// 将文件流存入向量
}
fin.close();// 关闭文件
if(fin.eof())// 文件结束符
{
return 4;
}
if(fin.fail())// 发生系统故障
{
return 2;
}
if(fin.bad())// 读入数据失败
{
return 3;
}
}
int main()
{
string fileName;
vector<string> vec;
string word;
istringstream instr;
cout << "enter filename: ";// 提示输入待打开的文件名
cin >> fileName;// 输入待打开的文件
switch(fileToVector(fileName, vec))
{
case 1:
cout << "can't open file: " << fileName << endl;
return -1;
break;
case 2:
cout << "systerm fails" << endl;
return -1;
break;
case 3:
cout << "bad data" << endl;
return -1;
break;
}
//若成功打开文件且实现了文件流到向量的存储
for(vector<string>::iterator it=vec.begin(); it!=vec.end(); ++it)
{
instr.str(*it);
while(instr >> word)
{
cout << word << endl;
}
}
return 0;
}
#include <sstream>
#include <vector>
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int fileToVector(string fileName, vector<string>& vec)
{
string line,filename("tt.txt");
vector<string>::iterator it=vec.begin();
ifstream fin(filename.c_str());// 打开文件
if(!fin)// 若打开文件失败
{
return 1;
}
while(getline(fin,line))// 读文件直到文件结束符
{
vec.push_back(line);// 将文件流存入向量
}
fin.close();// 关闭文件
if(fin.eof())// 文件结束符
{
return 4;
}
if(fin.fail())// 发生系统故障
{
return 2;
}
if(fin.bad())// 读入数据失败
{
return 3;
}
}
int main()
{
string fileName;
vector<string> vec;
string word;
istringstream instr;
cout << "enter filename: ";// 提示输入待打开的文件名
cin >> fileName;// 输入待打开的文件
switch(fileToVector(fileName, vec))
{
case 1:
cout << "can't open file: " << fileName << endl;
return -1;
break;
case 2:
cout << "systerm fails" << endl;
return -1;
break;
case 3:
cout << "bad data" << endl;
return -1;
break;
}
//若成功打开文件且实现了文件流到向量的存储
for(vector<string>::iterator it=vec.begin(); it!=vec.end(); ++it)
{
instr.str(*it);
while(instr >> word)
{
cout << word << endl;
}
}
return 0;
}