user-0 提问: 文件读取------获取值

回复:
user: user-1
content: 请判断fscanf函数的返回值！  推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。  不要把 fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n，写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fread,fwrite,fclose  //不作以上替换，遇到\x1a仍继续读;读写的内容当字节看待 弄混了  电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址； 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……  printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方，而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

user: user-0
content: 我想要fscanf函数，，但出了点问题。 char buf[128]; int value = 0; 在while(!feof(fp)) {       fscanf(fp, "%s", buf); 还是  fscanf(fp, "%d", &value); }

user: user-2
content: 引用 15 楼 u012889234 的回复:[quote=引用 14 楼 derekrose 的回复:] [quote=引用 9 楼 u012889234 的回复:] [quote=引用 7 楼 derekrose 的回复:] 文件的内容怎么会有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。[/quote] 这种需求是谁要的。。。 [/quote]   全局变量管理器： 管理所有的全局变量。[/quote]  相当于一个parse工具了  你现在的难点在哪一步？

user: user-0
content: 引用 14 楼 derekrose 的回复:[quote=引用 9 楼 u012889234 的回复:] [quote=引用 7 楼 derekrose 的回复:] 文件的内容怎么会有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。[/quote] 这种需求是谁要的。。。 [/quote]   全局变量管理器： 管理所有的全局变量。

user: user-2
content: 引用 9 楼 u012889234 的回复:[quote=引用 7 楼 derekrose 的回复:] 文件的内容怎么会有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。[/quote] 这种需求是谁要的。。。

user: user-0
content: 引用 12 楼 ganpengjin1 的回复:没有办法了，只能挨个字符读出，一行算一个变量名了。然后你的变量名所存的数据用map比较，key作为变量名，直接hash去查找你的数据了，只能这样了。  我弱弱的说一句，要是哪个员工这样设计存储方式，明年估计不用来上班了。 其实你说复杂了，这里只有名字，没有值，不用map，，也不用hash。 我只是要获取value_num 和 string_num的值。 肯定是两个整数  。比如这里 value_num = 1   string_num = 2.

user: user-3
content: 没有办法了，只能挨个字符读出，一行算一个变量名了。然后你的变量名所存的数据用map比较，key作为变量名，直接hash去查找你的数据了，只能这样了。  我弱弱的说一句，要是哪个员工这样设计存储方式，明年估计不用来上班了。

user: user-0
content: 引用 8 楼 ganpengjin1 的回复:你这个数据时怎么保存的，目前我只知道你的文件中保存的是两个枚举类型的数据结构。 这个文件里仅仅是全局变量名， 而怎么初始化这些全局变量 ，怎么使用，其他的一切这里都不考虑！

user: user-0
content: 引用 8 楼 ganpengjin1 的回复:你这个数据时怎么保存的，目前我只知道你的文件中保存的是两个枚举类型的数据结构。 是的，就只有两个枚举，没有别的！

user: user-0
content: 引用 7 楼 derekrose 的回复:文件的内容怎么会有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。

user: user-3
content: 你这个数据时怎么保存的，目前我只知道你的文件中保存的是两个枚举类型的数据结构。

user: user-2
content: 文件的内容怎么会有value 都是字符啊。。。

user: user-0
content: 引用 5 楼 ganpengjin1 的回复:[quote=引用 4 楼 u012889234 的回复:] [quote=引用 3 楼 ganpengjin1 的回复:] [quote=引用 2 楼 u012889234 的回复:] [quote=引用 1 楼 ganpengjin1 的回复:] 直接read就好了 [/quote]  sorry，没看清楚前面的，是文件内容，这个就不好办了，比较麻烦，为何不把这个数据结构的数据单独放到一个文件中，然后read它们呢，[/quote] 这个文件里的内容是不定的，有用户自己决定。这是个全局变量管理器，具体多少个全局变量不是预先确定的。[/quote] 为什么不用数据库呢，数据库搞的话，一下就搞定了。[/quote] 数据库是另一种方式，都需要考虑到！

user: user-3
content: 引用 4 楼 u012889234 的回复:[quote=引用 3 楼 ganpengjin1 的回复:] [quote=引用 2 楼 u012889234 的回复:] [quote=引用 1 楼 ganpengjin1 的回复:] 直接read就好了 [/quote]  sorry，没看清楚前面的，是文件内容，这个就不好办了，比较麻烦，为何不把这个数据结构的数据单独放到一个文件中，然后read它们呢，[/quote] 这个文件里的内容是不定的，有用户自己决定。这是个全局变量管理器，具体多少个全局变量不是预先确定的。[/quote] 为什么不用数据库呢，数据库搞的话，一下就搞定了。

user: user-0
content: 引用 3 楼 ganpengjin1 的回复:[quote=引用 2 楼 u012889234 的回复:] [quote=引用 1 楼 ganpengjin1 的回复:] 直接read就好了 [/quote]  sorry，没看清楚前面的，是文件内容，这个就不好办了，比较麻烦，为何不把这个数据结构的数据单独放到一个文件中，然后read它们呢，[/quote] 这个文件里的内容是不定的，有用户自己决定。这是个全局变量管理器，具体多少个全局变量不是预先确定的。

user: user-3
content: 引用 2 楼 u012889234 的回复:[quote=引用 1 楼 ganpengjin1 的回复:] 直接read就好了 [/quote]  sorry，没看清楚前面的，是文件内容，这个就不好办了，比较麻烦，为何不把这个数据结构的数据单独放到一个文件中，然后read它们呢，

user: user-0
content: 引用 1 楼 ganpengjin1 的回复:直接read就好了

user: user-3
content: 直接read就好了