| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 767 人关注过本帖
标题:[求助]一个小程序的执行结果
只看楼主 加入收藏
yuyi
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-25
收藏
 问题点数:0 回复次数:6 
[求助]一个小程序的执行结果

本人最近刚学C++,看到书上一个例子,源程序如下:
#include <iostream.h>
char input[]="SSSWILTECH1\1\11W\1WALLMP1";
void main()
{
char c;
for (int i=2;(c=input[i])!='\0';i++)
{
switch(c)
{
case 'a':cout<<'i';continue;
case '1':break;
case 1:while((c=input[++i])!='\1'&&c!='\0');
case 'E':
case 'L':continue;
default:cout<<c;
continue;
}
cout<<' ';
}
cout<<endl;
}
执行结果是 SWITCH WAMP
不知道case 1 后面的语句怎么执行的。
哪位好心人帮忙解释一下,谢了

[此贴子已经被作者于2006-4-26 8:30:11编辑过]

搜索更多相关主题的帖子: 结果 
2006-04-25 22:50
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
是不是\1ASCII里面是1啊
case 1 没有加引号就用C的ASCII来和他比较
case 1主要是比较\1 当是\1的时候继续进行
直到下面的不是最后的并且还不是\1

我是看结果说的


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-26 08:40
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
楼上说的很对,当i=11时,\1的ASCII码值是01,\11是09,这两个都会跳过,然后输出后面的W。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-04-26 09:15
yuyi
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-25
收藏
得分:0 
\1是ASCII里面的1
问题是case1 后面的while语句应该是个空语句吧,我理解条件成立的时候是继续向下执行,条件不成立的时候也应该向下执行吧
第一个1的时候产生一个空格,W前面的1应该还产生一个空格,
这样的话执行结果是SWITCH WWAMP吧
H和W之间有两个空格,但是上面程序的执行结果是SWITCH WAMP中间只有一个空格,而且还少一个W
所以while语句的执行有些不明白
2006-04-26 09:29
yuyi
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-25
收藏
得分:0 

今天用了一下c++的debug终于弄懂了程序的运行到1\1\11W\1之间的这段
case 1 后面的while语句可以写成
while(c=input[i+1]!='\1'&&c!='\0')
i++;
当执行到第一个\1是执行case1 后面的while语句\1后面是\11所以条件成立执行i++,直到W后面的\1条件为0,则跳出while循环。
这种解释应该是对的,我是从i值判断出来的,大家可以试一试

谢谢三楼mm的提示我一直认为\11是两个字符。

2006-04-26 23:16
rayc
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-4-24
收藏
得分:0 
这个例子的头文件什么意思啊?#include &lt;iostream.h&gt;

2006-04-27 08:41
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

为什么\11就一定是\11呢?为什么编译器不能把他看成\1和接着的1呢?


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-04-29 12:07
快速回复:[求助]一个小程序的执行结果
数据加载中...
 
   



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

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