今天编程需要从ini文件中读取一个key所对应的value。作为菜鸟的我,并不知道windows提供了读写INI文件的API,所以采用最原始的文件流的方式对文件进行读写,却发现有时候读出来的是乱码,这种方式有时可以工作,应该是文件的编码问题导致的。
后来发现Windows自带的API处理INI文件非常的简单方便:
读:GetPrivateProfileString("SectionName", "KeyName", "DefaultValue", buf, sizeof(buf), iniFilePath)
写:WritePrivateProfileString("SectionName", "KeyName", "DefaultValue", buf, iniFilePath)
当然,Windows也提供了读写int的相应函数GetPrivateProfileInt和WritePrivateProfileInt
需要注意的一点是:这里的iniFilePath不能仅仅提供ini文件名,这些函数不会在工程目录或者exe所在目录去寻找该ini文件。这里需要指定绝对路径,或者用“./FileName.ini”类似的方式来指明文件所在。所以当读写ini文件失败时,可以检查一下ini文件的路径是否正确。