换个姿势学C语言 第7章 获取全部外币牌价数据并保存为文件
0. 说明
《换个姿势学C语言》由何旭辉 著,清华大学出版社2022年出版。感谢何老师!

这是一本非常不错的书!
- 第一、二、三章总结参考换个姿势学C语言 第1-3章
- 第四章总结参考换个姿势学C语言 第4章
- 第五章5.1节总结参考换个姿势学C语言 第5章 5.1节
- 第五章5.2节总结参考换个姿势学C语言 第5章 5.2节
- 第五章5.3节总结参考换个姿势学C语言 第5章 5.3节
- 第五章5.4节总结参考换个姿势学C语言 第5章 5.4节
- 第六章总结参考换个姿势学C语言 第6章
- 第七章7.1节总结参考换个姿势学C语言 第7.1章 使用结构体存储不同类型的多项数据
- 第七章7.2节总结参考换个姿势学C语言 第7.2章 文件访问的基础知识
- 第七章7.3节总结参考换个姿势学C语言 第7.3章 将结构体存入磁盘文件
- 第七章7.4节总结参考换个姿势学C语言 第7.4章 获取和保存全部外币牌价数据
7. 获取全部外币牌价数据并保存为文件
变量、数组都是存储在内存RAM中的,这些数据所占用的内存在程序结束以后会被操作系统回收,其中的数据也就丢失了。因此我们需要将数据保存到外部存储器上(通常是硬盘),以便下次使用。
在一些较底层的语言里,程序员可以直接访问硬盘的某个扇区并进行数据读写,但这种方式一般不被推荐,因为这种方式除了效率比较低外还具有较大的危险,不恰当的磁盘访问可能会引起严重的故障(例如操作系统崩溃或者数据丢失)。
因此通常是以“文件”来组织磁盘上的数据。文件系统由操作系统管理,程序员通过操作系统间接地访问磁盘上的数据,不恰当的文件访问会被操作系统阻止(例如文件被其他程序占用或程序没有访问这个文件的权限),这样一来就安全得多,同时操作系统也会采取一些机制来提高文件访问的效率。
本章将会将取得的外汇牌价数据保存到磁盘文件中,但是在学习磁盘文件访问之前先学习结构体的使用方法。
结构体可以将多种不同类型的数据“组合”到一起,然后再将其存储到磁盘文件中。
7.4 获取和保存全部外币牌价数据
现在我们已经可以一次获取某一种外币的牌价数据,并将其显示或保存起来,也可以从文件中读取已保存的牌价数据。但是,在外汇牌价看板中需要显示多种(书上说的是26种)外汇牌价,它们的名称和代码是什么?
以下是根据中国银行官网外汇牌价页面整理的常见货币名称及其对应的国际标准货币代码(ISO 4217) 。
人民币的货币代码是CNY。详细可参考 中国银行外汇牌价 https://www.boc.cn/sourcedb/whpj/
| 序号 | 货币名称 | 货币代码 |
|---|---|---|
| 1 | 美元 | USD |
| 2 | 港币 | HKD |
| 3 | 澳大利亚元 | AUD |
| 4 | 欧元 | EUR |
| 5 | 日元 | JPY |
| 6 | 英镑 | GBP |
| 7 | 加拿大元 | CAD |
| 8 | 新加坡元 | SGD |
| 9 | 新西兰元 | NZD |
| 10 | 泰国铢 | THB |
| 11 | 韩国元 | KRW |
| 12 | 澳门元 | MOP |
| 13 | 瑞士法郎 | CHF |
| 14 | 瑞典克朗 | SEK |
| 15 | 卢布 | RUB(俄罗斯卢布) |
| 16 | 丹麦克朗 | DKK |
| 17 | 印尼卢比 | IDR |
| 18 | 挪威克朗 | NOK |
| 19 | 阿联酋迪拉姆 | AED |
| 20 | 新台币 | TWD |
| 21 | 菲律宾比索 | PHP |
| 22 | 南非兰特 | ZAR |
| 23 | 沙特里亚尔 | SAR |
| 24 | 巴西雷亚尔 | BRL |
| 25 | 土耳其里拉 | TRY |
| 26 | 印度卢比 | INR |
| 27 | 越南盾 | VND |
| 28 | 蒙古图格里克 | MNT |
| 29 | 林吉特 | MYR(马来西亚林吉特) |
| 30 | 尼泊尔卢比 | NPR |
| 31 | 捷克克朗 | CZK |
| 32 | 卡塔尔里亚尔 | QAR |
| 33 | 以色列谢克尔 | ILS |
| 34 | 墨西哥比索 | MXN |
| 35 | 匈牙利福林 | HUF |
| 36 | 科威特第纳尔 | KWD |
| 37 | 巴基斯坦卢比 | PKR |
| 38 | 柬埔寨瑞尔 | KHR |
| 39 | 文莱元 | BND |
| 40 | 塞尔维亚第纳尔 | RSD |
也就是说当前有40种外币!
牌价接口库提供了一次性取得全部外币牌价的函数,但我们现在不打算使用它。
如果只允许使用现有的知识和信息,并且只允许使用GetRateRecordByCode函数,如何实现获得全部外币牌价的功能呢?
