getline()函数的使用

本文介绍如何使用C++进行文件的打开与读取操作,并详细解释了如何利用std::stringstream处理读取的数据,包括整数和字符串类型的解析过程。
int counter = 0;
std::fstream file;
file.open(file_path, std::ios::in);


if (!file.is_open())
{
std::cout << "Error opening file: " << file_path << std::endl;
}


std::string line;


std::stringstream ss;


int tmpl_width, tmpl_height;

std::getline(file, line);
ss << line;//把fill文件中的 一行写入line中,下一次则会自动读取下一行

ss >> tmpl_width >> tmpl_height;

getline()函数用于读取文本中的一行内容。把一行的内容放到ss中之后,在把ss中的内容依次给 tmpl_width和tmpl_height;

假如ss中的内容是 32  32//中间有空格,

则ss会根据空格把32  32 赋值给 tmpl_width和tmpl_height;

若是读取到的内容是3232//中间无空格

则执行ss >> tmpl_width >> tmpl_height;后,tmpl_width值是3232,而 tmpl_height的值则是未知的。

同样对于string类型和int类型的也是以空格为界,

假如ss内容是   {'type': 1, 'x': 0, 'y': 0, 'blk': 2, 'bw': 3, 'bh': 3, 'rt0': (0, 0, 3, 3, 1), 'rt1': (3, 0, 3, 3, -1)}

执行此句:ss >> tmp_str >> type >> tmp_str >> tmp_str >> left >> tmp_str >> tmp_str >> top >> tmp_str >> tmp_str >> blks >> tmp_str >> tmp_str >> bw >> tmp_str >> tmp_str >> bh;

则 tmp_str =  {'type':

type=1;//因为type:和1之间有空格,所以到空格终止。

若是两者之间没有空格,则 tmp_str =  {'type': 1, 'x':     //直到遇到第一个空格终止。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值