Print Book

Rokid眼镜高精度图像识别的五大工程破局点 图像识别是AR交互的基础能力,其核心在于将现实图像映射为可计算的数字特征,并通过几何建模解算空间姿态。在专用AR眼镜场景中,该过程面临光学畸变、传感器时序错位、低延迟跟踪与人因适配等复合挑战。尤其在工业现场,Rokid Max系列的鱼眼镜头畸变、IMU-视觉异步采样、窄FOV下快速眼动等物理约束,使传统基于AR Foundation或OpenCV的识别方案失效。本文聚焦真实部署中的关键瓶颈,涵盖实时反畸变纹理渲染、原生SDK直调优化、端侧轻量CNN模型(TinyImageNet-Rokid)、IMU-视觉紧 阅读详情

要求

#include <iostream>
#include <fstream>
#include <string>
#include<sstream> 

using namespace std;

class Book
{
public:
	Book(string format)
	{
		this->book_format = format;
		setPageStyle(book_format);
		this->FirstLineChar = '=';
		this->cur_line  = 0;
		this->isNewPage=this->isNewLine = true;
	};

	~Book(){};
	void Print_book(ifstream &input,ofstream &output);

private:
	string book_format;
	int line_max;
	int width_max;
	int cur_line;
	char FirstLineChar;
	bool isNewPage;
	bool isNewLine;


	//output page first line
	void print_Page1stLine(ofstream &output);
	//output empty line
	void print_EmptyLine(ofstream &output);
	// set page style A4 A3
	void setPageStyle(string book_format );

	void readLine(ofstream &output,string line);
	void print_Line(ofstream &output,string s);
	string RemovePreAndLastSpace(string str);
	void string_replace(string&s1,const string&s2,const string&s3);
	int Book::find_split(string str);
};

以上 book.h 文件


#include "Book.h"
using namespace std;

void Book::Print_book(ifstream &input,ofstream &output)
{
	string line,word,tmp;
	while( getline(input,tmp) )
	{
		// first line
		//cout <<line<<endl;
		if(isNewPage)
			print_Page1stLine(output);
		
		// new line 
		string_replace(tmp,"\t","    ");
		line = RemovePreAndLastSpace(tmp);
		//string_replace(tmp,"\t","    ");
		if(line == "")
		{
			if(isNewLine&&!isNewPage)
				print_EmptyLine(output);
			isNewLine = false;
		}
		else
		{
			readLine(output,line);
			isNewLine = true;
		}	
	}

}

void Book::print_EmptyLine(ofstream &output)
{
	output<<endl;
	cur_line++;
	isNewLine = false;
	if(cur_line == line_max)
	{
		isNewPage  = true;
		cur_line = 0;
	}
}

void Book::print_Page1stLine(ofstream &output)
{
	for(int i = 0;i<width_max;i++)
		output<<FirstLineChar;
	output<<endl;

	isNewPage = false;
	isNewLine = false;
	cur_line++;
}

void Book::print_Line(ofstream &output,string s)
{
	if(isNewPage)
	{
		print_Page1stLine(output);
	}
	if(s=="")
		return;
	output<<s<<endl;
		cur_line++;
	if(cur_line == line_max)
	{
		isNewPage  = true;
		isNewLine = false;
		cur_line = 0;
	}
}

void  Book::setPageStyle(string book_format )
{
	if(!book_format .compare("A4") )
	{
		this->line_max = 210/2;
		this->width_max = 297/3;
	}
	else if(!book_format .compare("A3") )
	{
		this->line_max = 297/2;
		this->width_max = 420/3;
	}
	else if(!book_format .compare("TEST") )
	{
		this->line_max = 100;
		this->width_max = 105;
	}
	else  //default A4
	{
		this->line_max = 210/2;
		this->width_max = 297/3;
	}
}

string Book::RemovePreAndLastSpace(string str)
{
	int length = str.size();    
    int i = 0, j = length -1;    
 
    while(i < length && isspace(str[i] ) ){
		i++;
	}    
    
    while(j >= 0 && isspace(str[j])){
		j--;
	}    
    
    if(j<i) 
		return "";   

    return str.substr(i,j-i+1);  

}


int Book::find_split(string str)
{
	int length = str.size();    
    int j = length -1;    

    while(j >= 0&&!isspace(str[j])){
		j--;
	}   

	return j;
}

void Book::string_replace(string&s1,const string&s2,const string&s3)
{
	string::size_type pos=0;
	string::size_type a=s2.size();
	string::size_type b=s3.size();
	while((pos=s1.find(s2,pos))!=string::npos)
	{
		s1.replace(pos,a,s3);
		pos+=b;
	}
}

void Book::readLine(ofstream &output,string line)
{
	string str = RemovePreAndLastSpace(line);
	string newline1,newline2;

	if(str == "")
		return ;

	if(str.length()<=width_max)
		print_Line(output,str);
	else
	{
		if( isspace(str[width_max]) ) // new is space no worry
		{
			newline1 = str.substr(0,width_max);
			readLine(output,newline1);
			newline2 = str.substr(width_max);
			readLine(output,newline2);
		}
		else
		{
			string tmp = str.substr(0,width_max);
			int pos = find_split(tmp);

			newline1 = str.substr(0,pos);
			readLine(output,newline1);

			newline2 = str.substr(pos);
			readLine(output,newline2);
		}
	}
}

以上book.c 文件


#include "Book.h"
using namespace std;

int main()
{

	string infileName = "9.in";
	string outfileName = "9.out";


	ifstream infile;
	ofstream outfile;
	infile.open(infileName.c_str());
	if(!infile)
	{
		cerr<<"can't open file"<<infileName<<endl;
		return -1;
	}
	outfile.open(outfileName.c_str());
	if(!outfile)
	{
		cerr<<"can't open file"<<outfile<<endl;
		return -1;
	}

	Book book1 = Book("TEST");
	book1.Print_book(infile,outfile);

	infile.close();
	outfile.close();


	return 0;
}

以上测试文件


\t 在 string 占一个字符

但是输出是4个

所以在处理超长的行的时候,是吧\t 换成4 个 space了,然后分割成前后两端,递归了


Windows 10/11蓝屏急救:SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION报错全攻略(附安全模式+CMD修复) 本文针对Windows 10/11系统常见的SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION蓝屏报错,提供了从诊断到修复的完整解决方案。文章深入剖析了该错误与系统安全功能“内存完整性”及pci.sys驱动的关系,并详细指导用户如何通过安全模式进行基础修复,以及使用命令提示符执行高级系统文件修复和注册表修改,帮助用户彻底解决蓝屏问题并恢复系统稳定。 阅读详情

相关推荐

【UE5】多用户协同编辑实战:从配置到实时协作

本文详细介绍了在虚幻引擎5中配置和使用多用户协同编辑功能的完整流程。从启用Multi-User Editing插件、配置UDP Messaging网络通信,到启动服务器、创建会话并实现实时协作,提供了从环境准备到实战协作的清晰指南。文章还分享了资产同步、场景分批、对象锁定等实用技巧,并强调了网络配置与版本一致性等关键避坑点,旨在帮助中小型团队提升关卡设计和原型开发的协作效率。

weixin_29001683的博客 267

C语言之结构体(简述 上)

C 结构体 C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。 相比于数组可以一次的存储更多的不同的数据类型 定义结构 为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下: struct tag { member-list member-list member-list ... } variable-list ;

m0_50029891的博客 260

从零到一:基于DESeq2的转录组差异表达分析实战指南

本文详细介绍了基于DESeq2的转录组差异表达分析实战指南,涵盖数据准备、标准化处理、差异分析及结果解读等关键步骤。DESeq2凭借其稳定性和对低表达基因的友好处理,成为转录组数据分析的首选工具。文章还提供了常见问题排查和优化建议,帮助研究者高效完成从分析到发表的完整流程。

weixin_26759093的博客 270

【C语言基础】结构体

前言 结构体是 C 编程中用户自定义的可用的数据类型,它允许存储不同类型的数据项。(数组允许储存相同类型的数据项)。一个典型的例子就是学生信息登记表,姓名为字符串、学号为整数、年龄为整数,因为数据类型不同所以我们可以使用结构体来存放。 一、结构体的基础使用 具体的使用方法可以参考以下的代码: #include <stdio.h> int main() { struct book /* 定义结构体类型 */ { char bo...

qq_53180719的博客 629

普元EOS8.3精简版安装指南:从零开始搭建低代码开发环境

本文详细介绍了普元EOS8.3精简版的完整安装流程。从JDK1.8环境准备、MySQL数据库配置与初始化,到核心配置文件修改、服务启动与登录验证,提供了从零开始搭建低代码开发环境的清晰步骤和常见问题排坑指南,帮助开发者快速部署并体验平台核心功能。

ik678901的博客 1101

逆向工程师必备:用MDL绕过游戏保护读取内存数据的完整流程(附POC代码)

本文深入探讨了内核级内存访问技术,重点介绍了如何利用MDL(Memory Descriptor List)机制稳定、隐蔽地绕过游戏反作弊系统读取进程内存。通过对比MmCopyVirtualMemory等方法的优劣,提供了完整的MDL映射实战代码与反检测策略,为逆向工程师在内核态进行安全内存操作提供了专业指导。

weixin_29227425的博客 623

C语言快速回忆书签

1、编程开始 #include #include int main() { return 0; } return 0,将cpu使用权交个操作系统,int 返回一个整型. 2、输入输出 #include #include int main() { int i ,j,h[10]; printf("please input 10

云上笛暮 785

【mysql8.0.33安装详情教程】

8、进入Account and Roles界面,输入密码,再点击next(密码随便输,自己记住就行)11、进入Apply Configuration界面,直接点Execute,等待应用成功。14、输入密码,点击check,检查是否正确。3、下图是选择安装类型,选择默认安装就可以,然后点击“next”。5、进入Product Configuration,点击next。9、进入Windows Service界面,直接点击next。15、点击Execute执行安装(完成后点击Finish)二、验证是否安装成功。

98渣渣辉的博客 2112

函数

#内置函数 #abs取绝对值 print(abs(15)) #round取近似的值 print(round(1.7)) #,后是保留小数的位 print(round(3.1415,2)) #pow求次方 print(pow(3,3)) print(3**3) #max返回最大值 print(max([1,2,3,4,5])) #sum使用 print(sum(range(10),2)) #eval 执行表达式 a,b,c=1,2,3 print(‘动态执行的函数%d’%eval(‘a+b+c’)) #类型转

弥生的博客 841

Bootloader Design of PIC18 series MCU

注意:下列描述是在PIC单片机上启用Bootloader的一个相关知识的近似完备集。所有需要了解的,与bootloader与用户态程序交互的理论知识都已给出。包含内存组织,跳转,中断等必备功能的描述。

含光左卫的工作笔记集 1267

【推荐100个unity插件】动画重定向,快速在不同角色间共享动画,共用非人形Humanoid(泛型generic)动画——Retarget Pro

Retarget Pro是一款高效的Unity动画重定向工具,可快速在不同角色间共享动画。主要特点包括:1分钟快速设置,支持编辑器和运行时重定向;适用于人形、动物、武器等各类角色;提供基础重定向、IK重定向和FPS专用重定向三种功能模块;通过Rig组件和骨架资产实现骨骼链匹配,支持批量处理。插件包含示例项目和预设资源,操作简便且效果优于Unity原生Humanoid系统,特别适合处理手指等精细动画。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 545

代码,它实现了创建一个指向 Book 类的指针数组,然后动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中,最后通过循环来调用每个对象的 print() 函数,实现多态...

这段代码实现了创建一个指向 Book 类的指针数组,然后动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中,最后通过循环调用每个对象的 print() 函数,实现多态输出。 ...

weixin_35750953的博客 73

代谢组数据分析(二十一):通过MetaboAnalystR标准化构建sPLSDA预测模型

本文介绍了如何使用R语言中的MetaboAnalystR包和mixOmics包进行代谢组学数据的标准化和sPLSDA分析。MetaboAnalystR包用于数据预处理,包括数据初始化、清洗、补足、过滤和标准化等步骤,以确保数据质量。mixOmics包则用于sPLSDA分析,通过Lasso惩罚进行变量选择,并建立分类模型。文章详细说明了安装和加载相关R包的步骤,并提供了数据导入和预处理的代码示例。最后,强调了数据预处理的重要性,以确保后续分析的准确性和可靠性。

专注生信领域 2426

http://lfs.linuxsir.org/main/?q=book/print/

<br />http://lfs.linuxsir.org/main/?q=book/print/

babyfans的专栏 742

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

在主函数中,可以创建一个指向 Book 类的指针数组,然后动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中。然后,可以通过循环来调用每个对象的 print() 函数,...

你可以在主函数中创建一个指向Book类的指针数组,然后动态地创建Book类的对象和EBook类的对象,将这些对象存储到指针数组中。然后,你可以通过循环调用每个对象的print()函数,实现多态输出。你还可以编写一个静态函数menu(),用于输出操作菜单,让用户选择要进行的操作,例如添加图书、删除图书等。 ...

weixin_35755188的博客 128

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java: 已在该编译单元中定义com.zhang.collection.Book

把这个import去掉即可。

qq_55278081的博客 2320

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

首先,创建一个基类 Book,包含书的基本信息,如书名、作者、出版社等。这个类可以包含构造函数、析构函数、复制构造函数等成员函数。为了实现多态输出,可以在这个类中编写一个虚函数 print(),用于输...

首先,我们可以创建一个基类 Book,这个类包含图书的基本信息,例如书名、作者、出版社等。为了实现多态输出,我们可以在这个类中定义一个虚函数 print(),用于输出图书的信息。这个类也可以包含构造函数、析构函数、复制构造函数等成员函数。 然后,我们可以创建一个派生类 EBook,继承自 Book 类,并增加一些新的成员变量,例如电子书的文件格式等。这个类中也可以包含构造函数、析构函数等成员函数。...

weixin_35751194的博客 242

用c++语言编写一个完整代码 要求在主函数中,动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中。然后,可以通过循环来调用每个对象的 print() 函数,实现多态输出...

好的,我可以为您提供一个示例代码,其中包含了实现多态输出所需的动态创建对象的代码。 请注意,这是一个示例代码,因此可能需要根据您的具体需求进行更改。 #include <stdio.h> #include <stdlib.h> // 声明 Book 类 class Book { public: Book(const char* t, const char* a) ...

weixin_35752122的博客 89

delphi 打印问题

delphi: 我想把form1 的内容全部打印出来,用 form1.print;就可以了,但是我在form中包含一个 f1book 的控件,它打印是空白的?它提供一个f1book.fileprint()的方法,但是这样的话就变成单独打印一张纸上?如何打印时候 既能打印 form1的内容,又能打印 f1book 的内容呢??

wzhh52的专栏 1003

用c++语言编写一个完整代码 要求在主函数中,可以创建一个指向 Book 类的指针数组,然后动态地创建 Book 类的对象和 EBook 类的对象,将这些对象存储到指针数组中。然后,可以通过循环来调用...

这是一个使用 C 语言编写的完整代码示例,满足你的要求: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> // 定义 Book 类 typedef struct Book { char title[128]; char author[64]; int pages...

weixin_42596246的博客 121

OJC++【id:223】【25分】C. OOP书籍信息记录(单继承)

定义一个 Document 类, 其拥有数据成员 name (字符串类型), 并其拥有方法 Print 输出 name。 Document类的构造函数和析构函数都有相应输出,具体请看样例 从 Document 派生出 Book 类,增加数据成员 pageCount (int 类型), 其重载了方法 Print,输出name和页数 Book类的构造函数和析构函数都有相应输出,具体请看样例 主函数创建一个Book类对象,并调用方法Print输出。 注意: 凡是Creat*******的输出信息,均由

2401_88861649的博客 243

static修饰的方法

static 修饰的方法意味着可以直接通过类名调用 例如: class Book{ private String name; private String number; static void print(){ System.out.println(name); } int main(){ Book b = new Book(); b.name = “三只松鼠”; Book.print(); } } 这样运行程序,出来的直接是书的名字。当然了,我这里代码写的不是很全,只是展示一下意思。 ...

weixin_42746076的博客 197

匿名对象

Book book = new Book("Java开发",89.9); book.print(); //有名对象调用print方法 =>等效于 new Book("Java开发",89.9).print(); //匿名对象调用prin...

chuxi9394的博客 130

txt=open(“book.txt”,”r“)→print(txt)→txt.close()会输出什么结果。

但是,由于没有对文件内容进行读取或处理,所以并不会输出文件的实际内容。要读取文件内容,你需要调用文件对象的。假设 "book.txt" 文件存在并且可以成功打开,则。在Python中,当你打开一个文件时,的对象,表示成功打开了文件,并且以只读模式打开。方法或者迭代文件对象的每一行来获取文件内容。函数返回一个文件对象,它用于与文件进行交互。问题描述:会输出什么结果?

weixin_43501408的博客 506

查询数据库中的自定义Book类信息返回null

使用ssm过程中,不能从数据库中查询到自定义Book对象信息

qq_42110703的博客 180

图书(中北大学-程序设计基础(2))

定义成员函数setBook,用来为书籍的数据成员赋值,定义成员函数borrow和restore,分别办理借出和还回(借、还书时,暂时只完成数量的增1减1,这里的书仍是一种书的概念,随着课程进展,我们继续做真正的图书管理系统,每本书都能追踪到是谁何时借了,何时还了)业务,定义成员函数print用于输出—有关书的信息,定义set_NO与get_NO来实现修改类对象的书号与获得类对象的书号。自己写main函数,用来测试你编写的类。

LiShan_hh的博客 379
上一篇: Git
下一篇: Guess Number Higher or Lower
github_30830155
博客等级 码龄11年 5粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值