---------------------------------------- * 20140507 V1.0 zzx 创建 ***********************************************************************/ INT32 main() { UINT8 iRetVal = 0; UINT32 iOperType = 0; // 操作类型 UINT8 szUserNumber[30] = {0}; // 用户号码 UINT8 szOperTime[10] = {0}; // 操作时间, 格式为: yyyymmdd UserReqMsg_T tUserReqMsg = {0}; // 请求消息 // 对消息头部进行赋值 tUserReqMsg.MsgHead.iReserve1 = 1; tUserReqMsg.MsgHead.iReserve2 = 2; tUserReqMsg.MsgHead.iReserve3 = 3; tUserReqMsg.MsgHead.iReserve4 = 4; // 读入具体消息字段的值 printf("操作类型: \n"); scanf("%d", &iOperType); printf("用户号码: \n"); scanf("%s", szUserNumber); printf("操作时间: \n"); scanf("%s", szOperTime); // 对具体消息字段进行赋值(保留字段可不赋值) tUserReqMsg.iOperType = iOperType; strncpy(tUserReqMsg.szUserNumber, szUserNumber, strlen(szUserNumber));// 获取号码, 用strncpy代替strcpy strncpy(tUserReqMsg.szOperTime, szOperTime, strlen(szOperTime)); // 获取时间, 用strncpy代替strcpy // 对消息体的字段进行异常判断 iRetVal = ProcUserReqMsg(&tUserReqMsg); // 注意: 传递参数的时候要加上& if (iRetVal == 0) // 函数执行正确 { // 打印消息字段内容 printf("The user request message is: iOperType=%d, szUserNumber=%s, szOperTime=%s.\n", tUserReqMsg.iOperType, tUserReqMsg.szUserNumber, tUserReqMsg.szOperTime); return 0; } else // 打印异常消息 { printf("Some content of the user request message is wrong, please check!\n"); return -1; } } /********************************************************************** * 功能描述:对消息体的字段进行异常判断 * 输入参数: ptUserReqMsg-用户请求消息 * 输出参数:无 * 返回值: 0-成功 其它-失败 * 其它说明:无 * 修改日期 版本号 修改人 修改内容 * -------------------------------------------------------------------------------------------------- * 20140507 V1.0 zzx 创建 ***********************************************************************/ INT32 ProcUserReqMsg(UserReqMsg_T *ptUserReqMsg) { INT32 iRetValue = 0; // 对输入参数进行异常判断 if (ptUserReqMsg == NULL) { printf("ProcUserReqMsg(...): input parameter(ptUserReqMsg) is NULL.\n"); return -1; } // 对消息体字段进行异常判断 if ((ptUserReqMsg->iOperType != 1) && (ptUserReqMsg->iOperType != 2)) // 操作类型只能为1或2, 其它为数据异常 { printf("ProcUserReqMsg(...): the iOperType is wrong, iOperType=%d.\n", ptUserReqMsg->iOperType); return -2; } if (strlen(ptUserReqMsg->szUserNumber) != 8) // 用户号码异常, 长度8位才正确 { printf("ProcUserReqMsg(...): the szUserNumber is wrong.\n"); return -3; } if (strlen(ptUserReqMsg->szOperTime) != 8) // 操作时间异常, 长度8位才正确 { printf("ProcUserReqMsg(...): the szOperTime is wrong.\n"); return -4; } return 0; }
|