open_file

#ifndef _GET_ H
#define _GET_ H

#include <iostream>

std::istream& get(std::istream& in);

#endif





#include "get.h"

std::istream& get(std::istream& in)
{
	int ival;

	while(in >> ival, !in.eof())
	{
		if(in.bad())
			throw std::runtime_error("IO stream corrupted");
		if(in.fail())
		{
			std::cerr << "bad data, try again. " << std::endl;
			in.clear();
			in.ignore(200,'\n');
			continue;
		}
		std::cout << "输入的数据:" << ival << std::endl;
	}

	in.clear();

	return in;
}



#include <iostream>
#include <fstream>
#include <string>
#include "get.h"

using namespace std;

ifstream& open_file(ifstream &in, const string &file)
{
	in.close();
	in.clear();
	in.open(file.c_str());  // C风格的字符串打开流文件,
	return in;
}
int main ()
{
	string fileName, s;

	cout << "Enter filename: " << endl;
	cin >> fileName;

	ifstream inFile;  // 创建一个流对象,
	// inFile.open(...);
	if(!open_file(inFile,fileName)) // (流和文件的名称),
	{
		cout << "error: can not open file " << fileName << endl;
		return -1;
	}
	// 读取文件的内容,
	get(inFile);

	inFile.close();

	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值