天天看点

C++ primer 习题8-7 9 10

抄袭加模仿,再加点个人想法,努力增加熟练度。。。

#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
void process(string&s){cout<<s<<endl;};
int main()
{
	vector<string>files;
	string filename,s;
	cout<<"输入文件名:"<<endl;
	while(cin>>filename)
	files.push_back(filename);
	ifstream fin;
	vector<string>::const_iterator iter=files.begin();
	while(iter!=files.end())
	{
	//	fin.open(*iter);
	   fin.open(iter->c_str());//转化成C字符串??
		if(!fin)
		{
			cerr<<*iter<<"不能打开。。"<<endl;
			fin.clear();
			++iter;
			continue;
		}
		string line;
		while(getline(fin,line,'\n'))process(line);
		fin.close();
		fin.clear();
		++iter;
	}
	return 0;
}
           
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
void process(string&s){cout<<s<<endl;};
int main()
{
	vector<string>files;
	ifstream fin;
	fin.open("source.cpp");
	if(!fin)cerr<<"文件未打开。。"<<endl;
	string line;
//	while(getline(fin,line,'\n')) files.push_back(line);//每一行存储为一个单元
    while(fin>>line)files.push_back(line);//每个单词存储为一个单元
	vector<string>::iterator iter=files.begin();
	while(iter!=files.end())
	{
		cout<<*iter<<endl;
		++iter;
	}
	cout<<files[0]<<endl;
	cout<<*files.begin()<<endl;
    fin.close();
	return 0;
}