C语言结构体和结构体数组的使用;

/* C结构体和结构体数组示例,by bobo */#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;struct stu{char *name;int age;float score;
}estus[] = {{"敏敏",20,97.99},{"芷若",20,98.99},{"晓芙",27,96.98}};int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{static TCHAR szAppName[] = TEXT ("struct Demo") ;HWND         hwnd ;MSG          msg ;WNDCLASS     wndclass ;wndclass.style         = CS_HREDRAW | CS_VREDRAW ;wndclass.lpfnWndProc   = WndProc ;wndclass.cbClsExtra    = 0 ;wndclass.cbWndExtra    = 0 ;wndclass.hInstance     = hInstance ;wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;wndclass.lpszMenuName  = szAppName ;wndclass.lpszClassName = szAppName ;if (!RegisterClass (&wndclass)){MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ;return 0 ;}hwnd = CreateWindow (szAppName,TEXT ("C结构体和结构体数组示例"), WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL, hInstance,NULL) ;ShowWindow (hwnd, iCmdShow) ;UpdateWindow (hwnd) ;while (GetMessage (&msg, NULL, 0, 0)){TranslateMessage (&msg) ;DispatchMessage (&msg) ;}return msg.wParam ;
}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{HDC         hdc;PAINTSTRUCT ps;int i;char buffer[65];char dstr[20];struct stu stu1;            switch (message){case WM_CREATE:         return 0 ;case WM_LBUTTONDOWN:hdc = GetDC(hwnd);stu1.name="小昭";stu1.age=18;stu1.score=99.99;sprintf(dstr,"%.2lf",stu1.score);//将stu1.score保留2位小数赋值给dstrwsprintf(buffer, "姓名:%s,年龄:%d,成绩:%s", stu1.name,stu1.age,dstr);TextOut(hdc, 300, 20, buffer, 35);for(i=0;i<3;i++){sprintf(dstr,"%.2lf",estus[i].score);wsprintf(buffer, "姓名:%s,年龄:%d,成绩:%s", estus[i].name,estus[i].age,dstr);TextOut(hdc, 300, 45+25*i, buffer, 35);}return 0;case WM_PAINT:hdc = BeginPaint (hwnd, &ps);           EndPaint (hwnd, &ps) ;return 0 ;    case WM_DESTROY:PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ;
}

由于Windows API的wsprintf函数在格式化时不支持浮点类型,先用sprintf把浮点转为字符串;

C语言结构体和结构体数组示例 - Win32窗口程序演示相关推荐

  1. C语言结构体及函数传递数组參数演示样例

    C语言结构体及函数传递数组參数演示样例 注:makeSphere()函数返回Sphere结构体,main函数中.调用makeSphere()函数,传递的第一个參数为数组,传递的数组作为指针. post ...

  2. C语言基础1:初识C语言(转义、注释;数组、操作符、反码、补码、static、define、指针、结构体常变量;局部变量;作用域、生命周期)

    文章目录 C语言基础1:初识C语言 1.C语言简介 1.1什么是C语言 1.2C语言的发展 2.第一个C语言程序 2.1创建项目 2.2添加源文件 2.3写代码 3.数据类型 4.变量.常量 4.1定 ...

  3. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  4. C语言学习笔记11-结构体(struct、结构作为函数参数、结构数组)、联合体/共用体typedef; union(大、小端序)

    C语言-结构类型 程序中的数据都需要有类型支撑,当数据很复杂时(不是简单的一个值,如时间信息:年月日时分秒6个数据需要作为一个整体),我们需要声明一个新的结构类型来描述这种复合的数据(可以包含很多不同 ...

  5. C语言学生管理系统(结构体数组)

    简介 简单的学生管理系统,使用C语言编写. 功能 拥有增.删.改.查.打印.文件读写.搜索以及排序功能. 环境 推荐使用VS2015或以上版本(支持C11或以上)的编译器运行代码. 结构 数据结构为结 ...

  6. C语言高级编程:结构体中定义数组的“妙用”

    1. 说明 1)相同类型结构体变量可以直接赋值 2)在结构体中定义一个数组,可以用赋值语句拷贝整个数组,这也是数组间赋值的一个间接实现方式 3)在结构体中定义一个数组,可以传值调用的方法把它传递给函数 ...

  7. C语言学习笔记---结构体中的字符数组和字符指针

      在结构体中可以使用字符数组来存储字符串,也可以使用字符指针来存储字符串.比如: struct str{char s1[5];char s2[5];};struct str str1= {" ...

  8. cjson 对象是json数组型结构体_C语言 - cJSON解析特定格式 含有数组array类型的数据...

    在ESP32中使用了cJSON库,发现很好用.最近服务器端的JSON格式越来越多样,还是有些注意点,需要做下笔记记录下来. cJSON *MAC_arry = cJSON_GetObjectItem( ...

  9. C 语言编程 — 高级数据类型 — 结构体与位域

    目录 文章目录 目录 前文列表 结构体 定义结构体 初始化结构体变量 访问结构体成员 结构体的内存分布 将结构体作为实参传入函数 指向结构体变量的指针 位域 定义位域 使用位域结构体的成员 前文列表 ...

最新文章

  1. ACM训练小结-2018年6月16日
  2. LeetCode实战:逆波兰表达式求值
  3. SharedPreferences的使用
  4. Nature论文爆出千行Python代码Bug,或影响百篇学术论文
  5. C语言rand(),srand()函数真实性能分析
  6. [SCM]源码管理 - perforce的集中授权+分布式团队+负载均衡+可扩展性+高可用性+灾难恢复...
  7. css 选择href属性值,巧用CSS属性值正则匹配选择器(小技巧)
  8. 怎么使用小爱同学音响_智能音响购买指南!!!
  9. 便携式车用CAN总线分析仪can分析仪
  10. Linux下载的详细教程
  11. NSAT-1000 智能天线S参数自动化测试系统
  12. 货币代码php,在PHP中获取货币符号
  13. 第1章 区块链是什么
  14. 微信支付(小程序)-商户号配置与小程序配置
  15. 开源硬件的知识产权管理
  16. Idea、pycharm、Phpstorm鼠标滑动设置字体大小方法
  17. vscode 源代码管理窗口显示空白
  18. 怎么快速修改gif尺寸?仅需三步教你改gif大小
  19. 数睿数据资讯 |《洞见・大咖说》对话数睿数据李争辉 探讨400%高增长背后的关键抓手
  20. 麦克风离计算机主机多远,直观:您对计算机麦克风的设置和使用了解多少?

热门文章

  1. arm linux 显示屏 10钟黑屏
  2. 验证码的编写——本质:图片目的:防止恶意表单注册
  3. 图像添加柯西分布噪声
  4. c++ 实例精通(1)
  5. opencv矩阵运算(1)
  6. 数据结构-----栈
  7. view桌面池计算机显示错误,学员问答之3-View桌面问题
  8. (深度卷积生成对抗神经网络)DCGANs论文阅读与实现pytorch
  9. 从什么地方获取大数据_从哪收集大数据
  10. logo下方显示技术支持信息_艺术与实用性的结合,iQunix Spider 屏幕显示器支架评测...