更改数据到指定格式(修改版)

<img src="http://img.blog.csdn.net/20160427145905002?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="font-family: Arial, Helvetica, sans-serif;" alt="" /><span style="font-family: Arial, Helvetica, sans-serif;">//目标格式:地址,单幅图片包含的目标数,目标1坐标(x0,y0,x1,y1),目标2坐标(x0,y0,x1,y1)....</span>
/************************************director by hengguan*************************************/
//数据必须不等于0;
//原版基础上,修正了负数的提示,并且单个文档可读入多组个数据,而不是每个文档只读入1组数据
//本代码适用 VOC2011,VOC2007,INria等数据库
#include<iostream>
#include <fstream>
#include <string>
#include <vector>
#include <sstream>
#include <stdio.h>
#include<io.h>
using namespace std;
//要读取的文件夹路径
#define Basic_Path "E:\\data\\INria\\posGt\\"

//要存放的路径地址的基路径,可以选择Basic_path,也可以修改此路径
#define Set_Path "/home/jack/Desktop/data/pos/"

//目标存档文件路径,需要先创建好此文档
#define F_info "C:\\Users\\admin\\Desktop\\data1.txt"

bool JudgeNum(string str, int& iTmp, string path)
{
	bool bNum = true;
	string::size_type szSize = str.size();

	//判断是否为数字
	for (int i = 0; i<szSize; ++i)
	{
		char ch = str.at(i);
		if ((ch < '0') || (ch > '9'))
		{
			if (ch ==45)
			{
				cout << path <<"中包含小于0的数"<< endl;
<h1>				break;</h1>			}

			bNum = false;
			break;

		}
	}

	if (bNum)
	{
		istringstream iss(str);
		iss >> iTmp;
	}

	//判断数字是否为单个0
	/*if (iTmp == 0)
	{
		bNum = false;
	}*/
	return bNum;
}

	int a, b, c, d;
	vector<int> iVec;
	string strTmp;
	int iTmp = 0, B_num = 0, Coor_num , Object_num;
	string file_path;
	bool end_if=true;

int main()
{
	_finddata_t file;
	long lf;
	FILE *pfile;
	ifstream icin;
	//init();

	//创建文件流
	fstream output_stream;

	//输入文件夹路径
	if ((lf = _findfirst(Basic_Path"*.txt", &file)) == -1)
		cout << "Not Found!" << endl;
	else{
		//输出文件名
		do
		{
			Coor_num = 0;
			file_path = file.name;

			//读取文件夹下的文件
		    icin.open(Basic_Path+file_path);

			if (!icin)
			{
				return -1;
			}
			while (getline(icin, strTmp, ' '))    // 以空格为分隔符,读取每一个词
			{
				if (JudgeNum(strTmp, iTmp, file_path))
				{
					if (iTmp != 0)
					{
						iVec.push_back(iTmp);
						Coor_num++;
					}
					//else
						//num_zero++;
						//end_if = false;
				}
				//if (end_if == false)
					//break;
			}
			vector<int>::size_type stCnt = iVec.size();
			/*if (stCnt >= 4)
			{
				a = iVec.at(0 + B_num*4);
				b = iVec.at(1 + B_num * 4);
				c = iVec.at(2 + B_num * 4)+a;
				d = iVec.at(3 + B_num * 4)+b;
				B_num++;
				cout << a << " " << b << " " << c << " " << d<<endl;
			}*/
			output_stream.open(F_info, ios::out | ios::app);
			//output_stream << a << " " << b << " " << c << " " << d << " " << Basic_Path + file_path << endl;
			//output_stream << a << " " << b << " " << c << " " << d << " " << Set_Path + file_path << endl;

			//输出到文档,输出文件地址;
			output_stream << Set_Path + file_path << " ";

			//输出到文档,输出图片中目标数量,以及目标地址;
			output_stream << (Coor_num / 4);
			while (Coor_num / 4)
			{
				a = iVec.at(0 + B_num * 4);
				b = iVec.at(1 + B_num * 4);
				c = iVec.at(2 + B_num * 4) + a;
				d = iVec.at(3 + B_num * 4) + b;
				B_num++;
				output_stream << " " << a << " " << b << " " << c << " " << d;
				Coor_num-=4;
			}
			if (!(Coor_num / 4))
			{
				output_stream << endl;
			}
			end_if = true;
			icin.close();
			output_stream.close();
		}
		while (_findnext(lf, &file) == 0);
	}
	_findclose(lf);
	system("pause");
	return 0;
}

时间: 2024-08-24 18:42:58

更改数据到指定格式(修改版)的相关文章

把数组中的数据按照指定个格式拼接成一个字符串

/* * 需求:把数组中的数据按照指定个格式拼接成一个字符串 * 举例: *         int[] arr = {1,2,3};     * 输出结果: *        "[1, 2, 3]" * 分析: *         A:定义一个字符串对象,只不过内容为空 *         B:先把字符串拼接一个"[" *         C:遍历int数组,得到每一个元素 *         D:先判断该元素是否为最后一个 *             是:就直接

String-需求:把数组中的数据按照指定的格式拼接成一个字符串

package cn.lianxi; /* * 需求:把数组中的数据按照指定的格式拼接成一个字符串 * 举例: * int [] arr = {1,2,3}; * 输出结果 * “[1, 2, 3]” * 分析: * 1.定义一个字符串对象,只不过内容为空 * 2.把字符串拼接一个“[” * 3.遍历数组,得到每一个元素 * 4.先判断该元素是否为最后一个 * 是:就直接拼接元素和] * 不是:就拼接元素和逗号以及空格 * 5.输出拼接后的字符串 * */ public class zifu {

VB程序逆向反汇编常见的函数(修改版)

VB程序逆向常用的函数 1) 数据类型转换: a) __vbaI2Str    将一个字符串转为8 位(1个字节)的数值形式(范围在 0 至 255 之间) 或2 个字节的数值形式(范围在 -32,768 到 32,767 之间). b)__vbaI4Str   将一个字符串转为长整型(4个字节)的数值形式(范围从-2,147,483,6482,147,483,647) c)__vbar4Str  将一个字符串转为单精度单精度浮点型(4个字节)的数值形式 d)__vbar8Str   将一个字符

application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型

application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype  后台返回的数据响应的格式类型 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然.那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 其实form表单在你不写encty

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据

导入来自早期版本的 SQL Server 的本机格式数据和字符格式数据 在 SQL Server 2014 中,您可以通过将 bcp 与 -V 开关一起使用,从 SQL Server 2000.SQL Server 2005.SQL Server 2008.SQL Server 2008 R2 或 SQL Server 2012 中导入本机和字符格式数据. -V 开关将使 SQL Server 2014 使用指定的 SQL Server 早期版本中的数据类型,并且数据文件格式与早期版本中的格式相

lua解上阶梯问题(按指定格式输出具体走法、迭代、递归)

问题描述 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序列出每一种走法. 思路 注释均在代码中 其它 第一次接触lua,很好的脚本语言 源代码 --[[-------------------------------------------------------------------------- 表复制:深复制 --]]-------------------------------------------------------------------------- func

SevenZip.pas BUG修改版

本来用的是Henri Gourvest <[email protected]> 1.2版本 然后发现了2个问题: 1.对于文件名中带有空格的文件, 无法压缩, 原因是1488行, 压缩调用的是TStringList.Delimiter 来拆分文件字符串, 而空格是默认分行符, 导致文件名错误 2.解压缩函数, 如果目标文件已存在并且为只读属性时, 报错, 原因是1105行 创建文件流的时候直接使用了TFileStream.Create(path, fmCreate)导致 针对以上2个问题, 对

jsorder 第三方修改版 修正bug 增加总价

我主要运用这个jsorder,修正了它的不足//1.0版本bug:刷新页面 无法增加或者删除原来添加的商品//1.1版本:修正了1.0版本  新增bug 能够修改原来的商品 但出现产品数量为0 仍然保留在购物车中.//1.2版本:修正了1.1版本的产品为0 并且增加了购物车总价原文:代码一共6k,基于jquery的购物车实现,实现订单的本地cookie存储,支持购物车自定义样式,金额的计算.通过json与后台交互.实现可配置化的购物车系统,可应用于电子商务平台. ?1. [代码]使用代码    

Validform验证时可以为空,否则按照指定格式验证

在使用Validform v5.3.2时(http://validform.rjboy.cn/) 问题:可以为空,但不为空时需要按照指定格式验证数据 查看文档: 5.2.1版本之后,datatype支持:1.直接绑定正则:如可用这样写datatype="/\w{3,6}/i",要求是3到6位的字母,不区分大小写:2.支持简单的逻辑运算:如datatype="m | e, *4-18 | /\w{3,6}/i | /^validform\.rjboy\.cn$/":