输入流

在做文本文件输入流的时候遇到的问题
txt的内容是这样的:我和我的家乡 - 宁浩 / 徐峥 / 陈思诚 / 闫非 / 彭大魔 / 邓超 / 俞白眉- 葛优 / 黄渤 / 范伟 / 邓超 / 沈腾 / 更多-剧情 / 喜剧
记得改txt文本文档的编码格式ANSI 不然输不出
输出之后是这样的
按照结构体存放
用到的就是文件流 和字符串流
首先用文件流存入一行数据,以字符串格式存入一个buffer中,再用适当操作从buffer中提取各个数据项

#include<iostream>
#include<fstream>
#include<sstream>
#include<string>
using namespace std;

struct MovieType
{
	string  movie_name;
	string daractor_name;
	char actor_name[30];
	int  duration; //时长
};
int main(){
	MovieType movie;
	//文件流
	ifstream fin("output.txt");
	string buffer;
	getline(fin,buffer);//读取一行数据
	//	cout<<buffer;
	
	//字符串流
	istringstream sfin(buffer);//赋值给字符串流
/*	while(getline(sfin,buffer,'-'))
		cout<<buffer<<endl;//分别按照-分隔符输出 */
/*	sfin>>movie.movie_name;
	cout<<movie.movie_name;
	sfin>>movie.daractor_name;
	cout<<movie.daractor_name;
	//默认是按照空格分隔输出*/
	getline(sfin,movie.movie_name,'-');
		cout<<movie.movie_name;
		cout<<endl;
	getline(sfin,movie.daractor_name,'-');
		cout<<movie.daractor_name;//和第一种类似,只不过赋值给了结构体
		
	fin.close();
	return 0;
}

emmm好像也可以直接从文件流提取

int main(){
	MovieType movie;
	ifstream fin("output.txt");
	getline(fin,movie.movie_name,'-');
		cout<<movie.movie_name;
		cout<<endl;
	getline(fin,movie.daractor_name,'-');
		cout<<movie.daractor_name;//OHHHOK
	fin.close();
	return 0;
}

输出结果同上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值