⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readzz.cpp

📁 用VC++ 6.0 读取气象站的ZZ文件信息(地面常规要素实时数据文件)
💻 CPP
字号:
#include <stdio.h>
#include "string.h"

//输出的原始编码结构
typedef struct {
	char s1[5];  //北京时间,如0800
	char s2[5];  //2分钟风向
	char s3[5];  //2分钟平均风速
	char s4[5];  //10分钟平均风向
	char s5[5];  //10分钟平均风速
	char s6[5];  //最大风速时风向
	char s7[5];  //最大风速
	char s8[5];  //最大风速时间
	char s9[5];  //阵风风向
	char s10[5]; //阵风风速
	char s11[5]; //阵风最大时风向
	char s12[5]; //阵风最大时风速
	char s13[5]; //阵风最大时时间
	char s14[61];//雨量(现缺),253微量,254没有观测,255缺测
	char s15[5]; //干球温度
	char s16[5]; //最高气温
	char s17[5]; //最高气温出现时间
	char s18[5]; //最低气温
	char s19[5]; //最低气温出现时间
	char s20[5]; //湿球温度****为冬季湿球停用
	char s21[5]; //湿敏电容
	char s22[5]; //相对湿度
	char s23[5]; //最小相对湿度
	char s24[5]; //最小相对湿度出现时间
	char s25[5]; //水汽压
	char s26[5]; //露点温度
	char s27[5]; //本站气压,如 0235,
	char s28[5]; //最高本站气压
	char s29[5]; //最高本站气压出现时间
	char s30[5]; //最低本站气压
	char s31[5]; //最低本站气压出现时间
	char s32[5]; //地面温度
	char s33[5]; //地面最高温度
	char s34[5]; //地面最高出现时间
	char s35[5]; //地面最低温度
	char s36[5]; //地面最低出现时间
	char s37[5]; //5厘米地温
	char s38[5]; //10厘米地温
	char s39[5]; //15厘米地温
	char s40[5]; //20厘米地温
	char s41[5]; //40厘米地温
	char s42[5]; //80厘米地温
	char s43[5]; //160厘米地温
	char s44[5]; //320厘米地温
	char s45[5]; //保留----
	char s46[5]; //保留----
}OutInfo;
					   
//读取到的原始编码结构
typedef struct {
	char s1[4];
	char s2[4];
	char s3[4];
	char s4[4];
	char s5[4];
	char s6[4];
	char s7[4];
	char s8[4];
	char s9[4];
	char s10[4];
	char s11[4];
	char s12[4];
	char s13[4];
	char s14[60];
	char s15[4];
	char s16[4];
	char s17[4];
	char s18[4];
	char s19[4];
	char s20[4];
	char s21[4];
	char s22[4];
	char s23[4];
	char s24[4];
	char s25[4];
	char s26[4];
	char s27[4];
	char s28[4];
	char s29[4];
	char s30[4];
	char s31[4];
	char s32[4];
	char s33[4];
	char s34[4];
	char s35[4];
	char s36[4];
	char s37[4];
	char s38[4];
	char s39[4];
	char s40[4];
	char s41[4];
	char s42[4];
	char s43[4];
	char s44[4];
	char s45[4];
	char s46[4];
}UserInfo;

//转化数据结构
void ChangeStruct(UserInfo * userInfo/*原始结构*/,OutInfo * outInfo/*采样后的结构*/)
{
	//转化结构,根据ZZ文件的定义,分割出原始编码文件
	memcpy(outInfo->s1, userInfo->s1, sizeof(userInfo->s1));
	memcpy(outInfo->s2, userInfo->s2, sizeof(userInfo->s2));
	memcpy(outInfo->s3, userInfo->s3, sizeof(userInfo->s3));
	memcpy(outInfo->s4, userInfo->s4, sizeof(userInfo->s4));
	memcpy(outInfo->s5, userInfo->s5, sizeof(userInfo->s5));
	
	memcpy(outInfo->s6, userInfo->s6, sizeof(userInfo->s6));
	memcpy(outInfo->s7, userInfo->s7, sizeof(userInfo->s7));
	memcpy(outInfo->s8, userInfo->s8, sizeof(userInfo->s8));
	memcpy(outInfo->s9, userInfo->s9, sizeof(userInfo->s9));
	memcpy(outInfo->s10, userInfo->s10, sizeof(userInfo->s10));
	
	memcpy(outInfo->s11, userInfo->s11, sizeof(userInfo->s11));
	memcpy(outInfo->s12, userInfo->s12, sizeof(userInfo->s12));
	memcpy(outInfo->s13, userInfo->s13, sizeof(userInfo->s13));
	memcpy(outInfo->s14, userInfo->s14, sizeof(userInfo->s14));
	memcpy(outInfo->s15, userInfo->s15, sizeof(userInfo->s15));
	
	memcpy(outInfo->s16, userInfo->s16, sizeof(userInfo->s16));
	memcpy(outInfo->s17, userInfo->s17, sizeof(userInfo->s17));
	memcpy(outInfo->s18, userInfo->s18, sizeof(userInfo->s18));
	memcpy(outInfo->s19, userInfo->s19, sizeof(userInfo->s19));
	memcpy(outInfo->s20, userInfo->s20, sizeof(userInfo->s20));
	
	memcpy(outInfo->s21, userInfo->s21, sizeof(userInfo->s21));
	memcpy(outInfo->s22, userInfo->s22, sizeof(userInfo->s22));
	memcpy(outInfo->s23, userInfo->s23, sizeof(userInfo->s23));
	memcpy(outInfo->s24, userInfo->s24, sizeof(userInfo->s24));
	memcpy(outInfo->s25, userInfo->s25, sizeof(userInfo->s25));
	
	memcpy(outInfo->s26, userInfo->s26, sizeof(userInfo->s26));
	memcpy(outInfo->s27, userInfo->s27, sizeof(userInfo->s27));
	memcpy(outInfo->s28, userInfo->s28, sizeof(userInfo->s28));
	memcpy(outInfo->s29, userInfo->s29, sizeof(userInfo->s29));
	memcpy(outInfo->s30, userInfo->s30, sizeof(userInfo->s30));
	
	memcpy(outInfo->s31, userInfo->s31, sizeof(userInfo->s31));
	memcpy(outInfo->s32, userInfo->s32, sizeof(userInfo->s32));
	memcpy(outInfo->s33, userInfo->s33, sizeof(userInfo->s33));
	memcpy(outInfo->s34, userInfo->s34, sizeof(userInfo->s34));
	memcpy(outInfo->s35, userInfo->s35, sizeof(userInfo->s35));
	
	memcpy(outInfo->s36, userInfo->s36, sizeof(userInfo->s1));
	memcpy(outInfo->s37, userInfo->s37, sizeof(userInfo->s37));
	memcpy(outInfo->s38, userInfo->s38, sizeof(userInfo->s38));
	memcpy(outInfo->s39, userInfo->s39, sizeof(userInfo->s39));
	memcpy(outInfo->s40, userInfo->s40, sizeof(userInfo->s40));
	
	memcpy(outInfo->s41, userInfo->s41, sizeof(userInfo->s41));
	memcpy(outInfo->s42, userInfo->s42, sizeof(userInfo->s42));
	memcpy(outInfo->s43, userInfo->s43, sizeof(userInfo->s43));
	memcpy(outInfo->s44, userInfo->s44, sizeof(userInfo->s44));
	memcpy(outInfo->s45, userInfo->s45, sizeof(userInfo->s45));
	memcpy(outInfo->s46, userInfo->s46, sizeof(userInfo->s46));
}

//把ZZ文件的原始编码信息读出
UserInfo * StartRead(char * filename)
{
	UserInfo * userInfo=new UserInfo;
	FILE * ptr;
	ptr = fopen (filename, "rb");
	if (ptr!= NULL)
	{
		fseek (ptr, 0L, SEEK_SET ); //定位到文件头
		fread (userInfo, sizeof(UserInfo), 1, ptr );//读取内容到 Struct
		fclose (ptr);
	}

	return userInfo;
}

void main()
{
	OutInfo * outInfo = new OutInfo;
	memset(outInfo,0,sizeof(OutInfo));

	UserInfo * userInfo=StartRead("zz.txt");
	if (userInfo) //转化为可以输出的格式
		ChangeStruct(userInfo,outInfo);

	printf("时间:%s\n",outInfo->s1);
	printf("最高气温:%s\n",outInfo->s16);
	printf("相对湿度:%s\n",outInfo->s22);
	printf("本站气压:%s\n",outInfo->s27);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -