| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 935 人关注过本帖, 1 人收藏
标题:这是神马个情况!!!!???
只看楼主 加入收藏
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:11 
这是神马个情况!!!!???
程序代码:
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    TCHAR name1[20],name2[20],name3[20];
    TCHAR result1[10];
    TCHAR *ch;
    int i,j,k;
    switch(id)
    {
      
      case  IDC_BTN1 :
          GetDlgItemText(hwnd,IDC_EDT1,name1,sizeof(name1)/sizeof(TCHAR));
          i=atoi(name1);
          GetDlgItemText(hwnd,IDC_EDT2,name2,sizeof(name2)/sizeof(TCHAR));
          ch=name2;
          GetDlgItemText(hwnd,IDC_EDT3,name3,sizeof(name3)/sizeof(TCHAR));
           j=atoi(name3);
          if(*ch=='+')
          {
              k=i+j;
              itoa(k,result1,10);
              MessageBox(NULL,result1,"ANSERVER1",MB_OKCANCEL);
          }
          else if(*ch=='-')
          {
              k=i-j;
              itoa(k,result1,10);
              MessageBox(NULL,result1,"ANSERVER1",MB_OKCANCEL);
          }
          else if(*ch=='*')
          {
              k=i*j;
            itoa(k,result1,10);
              MessageBox(NULL,result1,"ANSERVER1",MB_OKCANCEL);
          }
          else if(*ch=='/')
          {
              if(j==0)
              {
                  MessageBox(NULL,"ERROR","WARNING",MB_OK);
            }
               k=i/j;
            itoa(k,result1,10);
              MessageBox(NULL,result1,"ANSERVER1",MB_OKCANCEL);
          }
          break;
        default:
          MessageBox(NULL,"INPUT ERROR","WARNING",MB_OK);
          break;
    }

}
在执行switch的时候就直接跳到default这步了,而且点击ok,一直出现input error这个窗口,点三四次之后就会没有了,这是怎么个情况呢?????
望各位高手给讲解一下。。
搜索更多相关主题的帖子: 神马 
2011-11-05 15:27
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:7 
可以把.exe和源代码打包发一下吗?
2011-11-05 15:40
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
回复 楼主 exo1991
嗯,可以。
proj4.zip (319.57 KB)
2011-11-05 15:55
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
回复 2楼 laznrbfe
其中的代码有点乱,不好意思了。。
2011-11-05 15:57
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:7 
就一个case,不满足就走default

总有那身价贱的人给作业贴回复完整的代码
2011-11-05 17:44
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
回复 5楼 embed_xuel
是满足第一个case的,但他不执行其后的语句。。
2011-11-05 19:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
你知道在这里TCHAR是什么数据类型,就敢与'+'之类的比较?

授人以渔,不授人以鱼。
2011-11-05 22:24
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 6楼 exo1991
你把id打印出来看看不就知道了

总有那身价贱的人给作业贴回复完整的代码
2011-11-05 22:27
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
回复 7楼 TonyDeng
此处的TCHAR是不是代表宽字符?
2011-11-06 14:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
TCHAR是一个宏,它根据程序源代码是否定义宏_UNICODE而变换字符数据类型,如果有_UNICODE宏,那么TCHAR的字符就是宽字符wchar_t,否则是传统的char。对'+'这样的字面值来说,必定是char的,宽版本的字符字面值是L'+'。因此,TCHAR到底是ANSI单字符还是宽字符,取决于你编译器的编译开关!

注意:在Windows操作系统中,所有字符都是unicode字符,如果你源代码使用了ANSI字符,则运行库会自动执行相应的转换(转成宽字符接收然后再转换回ANSI反馈),这是强行、静默执行的动作。

在VS2010中,IDE会在你把鼠标指向某个标识符时显示它的数据类型,它是随时编译程序的,像单字符与宽字符比较的代码,它能检测出来并标出红色波浪线,编译时也会出警告。我不知道你用什么编译环境,但用一个好的环境更有益。

[ 本帖最后由 TonyDeng 于 2011-11-6 22:32 编辑 ]

授人以渔,不授人以鱼。
2011-11-06 22:26
快速回复:这是神马个情况!!!!???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041946 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved