C Loop:打印印度地图

时间:2013-03-05 10:07:18

标签: c for-loop

我正在编辑这些问题b'coz我不允许添加新问题。

我发现这个程序做了很棒的打印,但无法理解它是如何工作的。请帮助我理解它背后的逻辑。

#include <stdio.h>
int main()
{
   int a,b,c;
   int count = 1;
   for (b=c=10; a="- FIGURE?, UMKC,XYZHello Folks,\
                   TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
                   UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
                   NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
                   HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
                   T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
                   Hq!WFs XDt!" [b++ +21]; )
         for(; a-- > 64 ; )
              putchar (( ++c == 'Z') ? c = c /9 : 33^b&1);
  return 0;
}

输出ScreenShot是

enter image description here

2 个答案:

答案 0 :(得分:1)

tab键通常会被对话管理器吞下,因为它用于将焦点从一个控件移动到另一个控件(即IsDialogMessage调用DialogBox函数作为其内部消息的一部分调用循环将过滤掉Tab键按下而不是让它通过你的对话程序。)

有几种方法我可以想到你可以绕过这个,但我建议你应该选择另一个键来打开/关闭对话框,因为tab已经有一个众所周知且明确定义的含义在Windows中。

答案 1 :(得分:0)

请阅读msdn的“EndDialog”说明:

  

EndDialog不会立即销毁对话框。相反,它设置一个标志并允许对话框过程将控制权返回给系统。在尝试从应用程序队列中检索下一条消息之前,系统会检查该标志。如果设置了该标志,系统将结束消息循环,销毁该对话框,并使用nResult中的值作为创建该对话框的函数的返回值。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms645472%28v=vs.85%29.aspx