__读ini文件中的数值问题__???

kingeboy 2005-06-04 04:19:28
我的ini文件里面存的是TRect类型用","号分开的值,如80,20,160,60然后是怎么在程序里面很方便的读出,转换成TRect类型,我现在是先读出字符串,然后再把字符串中的数字判断","号分别提取出来,但是这样做效率太低了,还请DX们救我!
...全文
212 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kese 2005-06-07
  • 打赏
  • 举报
回复
谢谢!我又学了一招。
铖邑 2005-06-07
  • 打赏
  • 举报
回复
回复人: kese(可可) ( ) 信誉:100 2005-06-06 15:06:00 得分: 0


我的意思是在窗口中运行,而不是控制台中


sscanf和scanf是有区别的,sscanf可以在窗口(图形界面)中使用
kingeboy 2005-06-07
  • 打赏
  • 举报
回复
回 xpdavis(咕嘟)
你的方法很好用谢谢了!
kingeboy 2005-06-06
  • 打赏
  • 举报
回复
回 xpdavis(咕嘟)
scanf不是AnsiString类型的成员函数啊

我现在就是用","号分割读取的,就想有没有好用的方法
titan_ysl 2005-06-06
  • 打赏
  • 举报
回复
我一般是直接把数据封在结构里存盘,一来存取方便,二来用户也不容易任意修改。
kese 2005-06-06
  • 打赏
  • 举报
回复
我的意思是在窗口中运行,而不是控制台中
cczlp 2005-06-06
  • 打赏
  • 举报
回复
xpdavis(咕嘟)的方法
int i[4];
AnsiString str = "80,20,160,60";
sscanf(str.c_str(), "%d,%d,%d,%d", i, &i[1], &i[2], &i[3]);
是在windows下用的.
别忘了加上#include <stdio.h>
kese 2005-06-06
  • 打赏
  • 举报
回复
xpdavis(咕嘟) 兄弟的方法很好。只是希望给出一个能在windows中运行的代码,而不是在dos下运行的。
期待你解决这个问题。
铖邑 2005-06-06
  • 打赏
  • 举报
回复
int i[4];
AnsiString str = "80,20,160,60";
sscanf(str.c_str(), "%d,%d,%d,%d", i, &i[1], &i[2], &i[3]);
gxd305 2005-06-06
  • 打赏
  • 举报
回复
学学 流
诸如
istream
ostream
iostream
fstream
stringstream
之类的东西
就可以如
xpdavis(咕嘟)
所用的方法了
F117p 2005-06-04
  • 打赏
  • 举报
回复
没试过

给你参考:考虑用一种算法,将4个数经过某个算法后得到一个数。
然后在读取的时候再逆算法,还原出来。

如可以:a,b,c,d x=1*a+10*b+100*c+1000*d
kese 2005-06-04
  • 打赏
  • 举报
回复
你可以利用分隔符(,)将字符串分割然后AnsiString::ToInt()
楼主这个问题应该自己解决,而且像这样的东西放在配置文件中是不合理的
铖邑 2005-06-04
  • 打赏
  • 举报
回复
int i[4];
AnsiString str = "80,20,160,60";
str.scanf("%d,%d,%d,%d", i, &i[1], &i[2], &i[3]);
kingeboy 2005-06-04
  • 打赏
  • 举报
回复
不行我的值存的格式是
rc=80,20,160,60
这样的
如果换成就太多值了
rcL=80
rcT=20
rcR=160
rcB=60
我有好多个这样的TRect结构要存暂时用的是把值当做字符串读出来在用一个函数把字符串分段转换成int然后在赋给TRect结构.
F117p 2005-06-04
  • 打赏
  • 举报
回复
不明白,为什么不直接用ReadInteger和WriteInteger?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧