如何使用C++语言,读取ini文件中空格
来源:互联网 发布:excel找出重复的数据 编辑:程序博客网 时间:2024/05/17 22:47
在使用GetPrivateProfileString函数时,有时我们需要读取ini配置文件中的前置空格,怎么办呢?
现在给出一个例子:
#include <stdio.h>#include <windows.h>int main(){char szCont[100];int iReadLen = 0;memset(szCont, 0, sizeof(szCont));iReadLen = GetPrivateProfileString("TESTDATA", "Value", "", szCont, sizeof(szCont), ".\\Config.ini");printf("读取的数据长度为:%d\n读取的数据内容为:\"%s\"\n", iReadLen, szCont);return 0;}
Config.ini文件的内容如下:[TESTDATA]
Value=' 这是一个读取ini文件中前置空格的例子 '
输出结果:读取的数据长度为:39
读取的数据内容为:" 这是一个读取ini文件中前置空格的例子 "
总结:如果想要保留从ini文件中读到的字符串中的前置空格或者后置空格,只需要将每个key值中的整个值都使用英文的 单引号 引起来,就可以实现效果,否则,读取出来的数据,将会是去掉前置和后置空格的字符串
GetPrivateProfileString使用时的限制事项如下:
1.可指定数据取得缓冲区的最大长度nSize为0xFFFF, 即可最大取得的数据长度为nSize-1(65534)。另外,使用WritePrivateProfileString写入则没有此限制。
2.读取INI数据时,遇到换行字符(0x0D, 0x0A)与NULL(0x00)即刻停止,忽略之后的字符。
3.读取INI时,会先从头找Section,找到后即在此Section中查找Key,要是在这个Section找不到此Key的话,即认为此Key不存在,即便此后还有同名的Section-Key定义。比如下面这个具体的例子里,使用GetPrivateProfileString则永远无法成功读取到Section1Key2。
[Section1]
Section1Key1=・・・
[Section2]
Section2Key1=・・・
[Section1]
Section1Key2=・・・ //× 永远无法找到它
4.此API函数有一个默认值参数lpDefault,用于指定没有找到指定的字段名或键名时默认的返回字符。由于INI文件被独占读取打开等原因导致的INI无法读取时也返回此默认参数,所以无法得知此API调用本身是否发生了错误,即无法辨别是无法读取INI还是指定的字段名或键名在INI中不存在 。
5.写入INI的字符串要是有空格(0x20)开头或是结尾,虽然可以正确写入不过读取时开头与结尾的空格会被自动忽略。要是真的有必要保存这些空格的话,有一个解决办法:写入前在字符串的前后加上‘。而且读取时会自动忽略开头与结尾的’,无需多余处理。
- 如何使用C++语言,读取ini文件中空格
- c语言实现读取ini文件操作
- 如何读取ini文件?
- ini文件读取(C#)
- C 读取ini文件
- 【C#】读取*.ini文件
- 使用C语言解析INI文件
- C语言实现<读取>和<写入> *.ini文件。
- windows下C语言实现<读取>和<写入> *.ini文件。
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 如何在C#中读写INI文件
- 每天一道算法题(7)——在字符串中删除特定的字符
- quick Lua 在Lua中使用gettext实现多语言支持
- word如何转换成pdf文件
- jQuery校验 jQuery Validate 表单验证详解
- Android性能调优工具TraceView介绍
- 如何使用C++语言,读取ini文件中空格
- A Benchmark for Surface Reconstruction 表面重建的基准
- 选调生
- qconf安装与配置
- Spring3核心技术之事务管理机制
- ubuntu下命令操作记录
- consul 入门
- jquery validate 详解二
- 第三章124页41题