在子进程中先把char数组转换成CString,再把CString转换成int,第一步转换正常,但是第二步int赋值不上去

chutiange00 2014-03-22 11:32:50
问题如标题,int赋值不上去
char chepaix[10];
char tem1[64];
int i;
int j;
CString strx;
int cpx;
strncpy(chepaix, temp1+j, i-j);
strx = chepaix;
cpx = _ttoi(strx);(atoi(strx)也试过了也是无效)

char chepaix[10];
char tem1[64];
int i;
int j;
CString strx;
char *ch;
int cpx;
strncpy(chepaix, temp1+j, i-j);
strx = chepaix;
ch = strx.GetBuffer(strx.GetLength());
cpx = _ttoi(ch);
这个也试过也是一样
...全文
114 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyefangzhou24 2014-03-27
  • 打赏
  • 举报
回复
引用 2 楼 yiyefangzhou24 的回复:
ch = strx.GetBuffer(strx.GetLength()); cpx = atoi(ch);
我也傻了 strcpy(ch,strx.GetBuffer(strx.GetLength())); cpx=atoi(ch);
风行踩火轮 2014-03-27
  • 打赏
  • 举报
回复
atoi的参数应该是const char*,直接用cstring应该不行的吧,用vc,结构应该是atoi(((string)ch).c_str());
merlinfang 2014-03-24
  • 打赏
  • 举报
回复
直接这么用就可以了,转不成功就先打印下string,看是什么样的 CString strx; cpx = _ttoi(strx)
赵4老师 2014-03-24
  • 打赏
  • 举报
回复
为啥不用_stscanf呢?
worldy 2014-03-24
  • 打赏
  • 举报
回复
不知道lz的字符串指针保存的什么内容,假设如下 char* p="123456789"; CString cs=p; //字符数组就转为了CString int val=atoi(p); //字符串转数值 注意,必须是char* 不能是TCHAR*(如果是Unicode编译) 不能加_T转换,数值不能使用L前缀
yiyefangzhou24 2014-03-24
  • 打赏
  • 举报
回复
ch = strx.GetBuffer(strx.GetLength()); cpx = atoi(ch);

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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