CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

请问一个关于sprintf的问题,急!

楼主hagaga()2005-08-04 15:37:21 在 VC/MFC / 基础类 提问

char     buffer[10];  
  CString   temp;  
  b_MASCII.GetWindowText(temp);  
           
  sprintf(buffer,   "%x",   temp[0]);    
  如果我在b_MASCII中输入A的话,buffer中的值是显示为A的ASCII码41  
  但是我把sprintf(buffer,   "%x",   temp[0]);   换成sprintf(buffer,   "%x",   temp);就出现很奇怪的结果了  
  怎么解决呢?我在b_MASCII中输入的   不止一个字符啊?总不能都用sprintf(buffer,   "%x",   temp[0]);   把?  
  谢谢 问题点数:50、回复次数:14Top

1 楼dirdirdir3(风)回复于 2005-08-04 15:50:13 得分 15

不能这样用,可以用循环来显示阿:  
  for(int   i=0;i<tmp.GetLength();i++)  
  {  
      sprintf(buffer,"%x",temp[i]);  
  }Top

2 楼lixiaosan(小三)回复于 2005-08-04 15:51:31 得分 15

for(int   i=0;i<temp.GetLength();i++)  
  {  
          sprintf(buffer,   "%x",   temp[i]);      
  }Top

3 楼hagaga()回复于 2005-08-04 15:53:25 得分 0

楼上的  
  这样也不行啊  
  结果跟sprintf(buffer,   "%x",   temp[0]);    
  是一样的Top

4 楼hagaga()回复于 2005-08-04 15:56:42 得分 0

我调试的时候输入AA只循环一次啊、  
  这是怎么回事啊?Top

5 楼yzhouen(真的不懂vc)回复于 2005-08-04 15:57:30 得分 0

一楼,二楼的正确,你是其他搞错了Top

6 楼laiyiling(陌生人[MVP])回复于 2005-08-04 15:57:48 得分 0

sprintf(buffer,   "%x",   temp.GetAt(i));Top

7 楼hagaga()回复于 2005-08-04 16:02:46 得分 0

for(int   i=0;i<temp.GetLength();i++)  
  {  
          sprintf(buffer,   "%x",   temp[i]);      
  }  
   
  你这样的话buffer中的值永远是temp[temp.GetLength()-1]的16进制  
  而不是这一连串的啊Top

8 楼yzhouen(真的不懂vc)回复于 2005-08-04 16:15:36 得分 0

你都能得到单个的了,难道不能把它连起来吗Top

9 楼yzhouen(真的不懂vc)回复于 2005-08-04 16:17:28 得分 10

char     buffer[10];  
  CString   temp;  
  temp="AC";  
  CString   strtest,str;  
          for(int   i=0;i<temp.GetLength();i++)  
  {  
  sprintf(buffer,   "%x",   temp[i]);    
  strtest.Format("%s",&buffer[0]);  
  str+=strtest;  
  }Top

10 楼my_mtx(水木)回复于 2005-08-04 16:30:18 得分 0

sprintf(buffer,   "%x",   temp[i]);    
  写成  
    sprintf(buffer+i*   2   ,   "%x",   temp[i]);Top

11 楼lixiaosan(小三)回复于 2005-08-04 16:35:11 得分 10

char   buffer[10];  
  CString   temp;  
  for(int   i=0;i<temp.GetLength();i++)  
  {  
  sprintf(buffer,   "%c",   temp[i]);  
  int   asc   =   atoi(buffer);  
  }Top

12 楼lixiaosan(小三)回复于 2005-08-04 17:28:44 得分 0

CString   temp;  
  m_edit.GetWindowText(temp);  
  for(int   i=0;i<temp.GetLength();i++)  
  {  
            int   asc   =   (int)temp[i];  
  }Top

13 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-08-04 18:31:36 得分 0

sprintf(buffer+i*   2   ,   "%02x",   temp[i]);  
  Top

14 楼51365133(渊海)回复于 2005-08-04 20:41:37 得分 0

#include   <iostream.h>  
  #include   <string.h>  
   
  int   main()  
  {  
  char   temp[256];  
  cout<<"请输入要转换的字符:";  
  cin>>temp;  
  cout<<"转换后的字符:";  
  for(int   i=0;i<strlen(temp);i++)  
  cout<<int(temp[i]);  
  cout<<endl;  
  return   0;  
  }Top

相关问题

  • sprintf
  • 紧急呼救!!为什么我的值总是不对?有关sprintf函数。
  • sprintf 的问题
  • sprintf的问题
  • sprintf 的妙用
  • 关于sprintf的问题
  • 有sprintf()这个函数吗?
  • 请教sprintf的原理
  • 关于sprintf的小问题
  • 如何对string使用sprintf() ?

关键词

  • sprintf
  • temp
  • buffer
  • 显示
  • mascii中输入
  • cout
  • 不能
  • char

得分解答快速导航

  • 帖主:hagaga
  • dirdirdir3
  • lixiaosan
  • yzhouen
  • lixiaosan

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo