sstream读取文件

sstream读取文件对于如下图所示的数据文件:274表示有274个点对,以下每一行代表一个点对,每一行的四个数从左到右依次是一个第一个点的x坐标、y坐标、第二个点的x坐标、y坐标,现在要把点对数和每个点对读取并存储,具体代码如下:#include<iostream>#include<sstream>#include<fstream>#include<string&…

大家好,又见面了,我是你们的朋友全栈君。

对于如下图所示的数据文件:
在这里插入图片描述

274表示有274个点对,以下每一行代表一个点对,每一行的四个数从左到右依次是一个第一个点的x坐标、y坐标、第二个点的x坐标、y坐标,现在要把点对数和每个点对读取并存储,具体代码如下:

#include<iostream>
#include<sstream>
#include<fstream>
#include<string>
#include<vector>
#include<assert.h>
using namespace std;


struct Correspondence2D2D
{
    double p1[2];
    double p2[2];
};
typedef vector<Correspondence2D2D> Correspondences2D2D;

int main(){
	Correspondences2D2D corr_all;
	int n=0;
	ifstream in("correspondences.txt");
	assert(in.is_open());
	string line, word;
    int n_line = 0;
	while(getline(in, line)){
    	stringstream stream(line); //等价于stringstream stream; stream<<line; 向流中传值
        if(n_line==0){
            int n_corrs = 0;
            stream>> n_corrs; //将流中的值读取到n_corrs中
            corr_all.resize(n_corrs);
			cout<<"Total line is "<<n_corrs<<endl;
            n_line ++;
            continue;
        }
        if(n_line>0){

            stream>>corr_all[n_line-1].p1[0]>>corr_all[n_line-1].p1[1]
                  >>corr_all[n_line-1].p2[0]>>corr_all[n_line-1].p2[1];
            cout<<n_line<<" line is "<<corr_all[n_line-1].p1[0]<<" "<<corr_all[n_line-1].p1[1]<<" "
                  <<corr_all[n_line-1].p2[0]<<" "<<corr_all[n_line-1].p2[1]<<endl;
        }
        n_line++;
    }
	return 0;
}

运行结果如下:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136158.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月4日 上午6:46
下一篇 2022年6月4日 上午6:46


相关推荐

  • js 获取url大全

    js 获取url大全URL 即统一资源定位符 UniformResou URL 完整的 URL 由这几个部分构成 scheme host port path query fragmentsche 通信协议 常用的 http ftp maito 等 host 主机 服务器 计算机 域名系统 DNS 主机名或 IP 地址 port 端口号 整数 可选 省略时使用方案的默认端口

    2026年3月17日
    2
  • 正找工作的同学看过来——Java项目经验篇

    正找工作的同学看过来——Java项目经验篇学习 Java 就是用来做项目的 Java 的主要应用领域就是企业级的项目开发 要想从事企业级的项目开发 你必须掌握如下要点 正在找工作的同学自行阅读哦 1 掌握项目开发的基本步骤 2 具备极强的面向对象的分析与设计技巧 3 掌握用例驱动 以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧 别人告诉你要实现什么 你就用代码堆砌来实现别人的要求 你必须学

    2026年3月26日
    2
  • 2019美赛A题—学习记录

    2019美赛A题—学习记录2019美赛a题论文来源:https://github.com/MATHmodelsAbstract【废话干货1:9开】一句话引入概述问题-概述方法-概述结果【三个模型,模型分析因素,解决的问题】灵敏度分析【修改参数看影响】一句话意义Introduction1.问题重述原问题问题A:生态博弈在虚构的电视连续剧《权力的游戏》中,以史诗幻想小说《冰与火之歌》系列…

    2022年5月31日
    33
  • jQuery -&gt; 获取兄弟元�

    jQuery -&gt; 获取兄弟元�

    2021年11月30日
    46
  • 对象数据库 VS 关系数据库

    对象数据库 VS 关系数据库对象数据库 VS 关系数据库我们将对象数据库管理系统 ODBMS 定义为一个集成了数据库能力与面向对象编程语言能力的数据库管理系统 DBMS ODBMS 使数据库对象看起来像是已有的一个或多个程序设计语言中的程序设计语言以象 RickCattell OMG 93 委员会主席 ODBMS 在多用户客户机 服务器环境中提供了持久性存储器 ODBMS 可以处理对象的并行访问 提供锁定和事务保护

    2026年3月19日
    2
  • 天融信:做好OpenClaw安全管理,让智能的龙虾守规矩~

    天融信:做好OpenClaw安全管理,让智能的龙虾守规矩~

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号