文件读取-获取值,该怎么处理
文件读取------获取值文件内容如下:conf.inenum GLOBAL_VALUE{nId,value_num }enum GLOBAL_STRING{strFil
文件读取------获取值
文件内容如下: conf.in
enum GLOBAL_VALUE
{
nId,
value_num
};
enum GLOBAL_STRING
{
strFile = value_num,
string_num
};
现在要读取文件获取value_num的值 和 string_num的值。
sorry,没看清楚前面的,是文件内容,这个就不好办了,比较麻烦,为何不把这个数据结构的数据单独放到一个文件中,然后read它们呢,
[解决办法]
sorry,没看清楚前面的,是文件内容,这个就不好办了,比较麻烦,为何不把这个数据结构的数据单独放到一个文件中,然后read它们呢,
这个文件里的内容是不定的,有用户自己决定。这是个全局变量管理器,具体多少个全局变量不是预先确定的。
为什么不用数据库呢,数据库搞的话,一下就搞定了。
[解决办法]文件的内容怎么会有value 都是字符啊。。。
[解决办法]你这个数据时怎么保存的,目前我只知道你的文件中保存的是两个枚举类型的数据结构。
[解决办法]这种需求是谁要的。。。
[解决办法]
文件的内容怎么会有value 都是字符啊。。。
enum GLOBAL_VALUE
{
nId,
value_num
};
enum GLOBAL_STRING
{
strFile = value_num,
string_num
};
/*文件的内容怎么会有value 都是字符啊。。。*/ 什么意思。
文件就两个枚举。
enum GLOBAL_VALUE
{
nId,
value_num
};
这个枚举里全是值类型的全局变量名,value_num不就是总个数吗,枚举默认从0开始,这里就是1。
enum GLOBAL_STRING
{
strFile = value_num,
string_num
};
这个枚举里全是串类型的全局变量名,string_num不就是串类型的总个数吗,从value_num开始(也就是1开始),这里string_num = 2。
这种需求是谁要的。。。
全局变量管理器: 管理所有的全局变量。
相当于一个parse工具了
你现在的难点在哪一步?
[解决办法]请判断fscanf函数的返回值!
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址;
人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。