代码如下: 
 CString str1 = "Out2.txt";
 CString str2 = "OutText.txt"; int index = 3;
 char ch1 = str1.GetAt(index);
 char ch2 = str2.GetAt(index); 为什么得到的 ch1 和 ch2 前面都带有一个数字啊?
  我要让 ch1 = 2  ; ch2 = T 就是这样的字符 。 为什么会这样啊? 怎么做啊?
 
 各位高手请指教指教小弟吧,谢谢了 !

解决方案 »

  1.   

    1 代码 结果好像是 ch1 = 2 ch2 = T .
    2 你打印、显示、存储......的时候,看看是不是按char 保存打印的?....
    3 不行的话,ch1 ch2 str1 str2 赋初值为空.
    CString str1("");
    CString str2("");
    char ch1 = 0;
    char ch2 = 0;
    str1 = "Out2.txt";
    str2 = "OutText.txt";int index = 3;
    ch1 = str1.GetAt(index);
    ch2 = str2.GetAt(index);
    估计是第二个原因
      

  2.   

    再正常不过了,呵呵
    你在VC的调试器里看到的应该是:
    ch1: 50'2' (或者 0x32'2')
    ch2: 84'T' (或者 0x54'T')
    其实都是一回事:字符'2'的ASCLL码值是 50,也就是十六进制的 0x32 ;字符'T'同理……
      

  3.   

    但是 我得到的 ch1  ch2  要和数字进行比较 看是不是数字。
     前面带有数字就比较不出来 不对!
      

  4.   

    用字符串试试看:
    CString str1 = "Out2.txt";
    CString str2 = "OutText.txt";int index = 3;
    CString ch1 = CString(str1.GetAt(index));
    CString ch2 = CString(str2.GetAt(index));用strcmp把ch1,ch2字符串跟数字字符串比较。