codeblocks单步调试求助

小白在此 2014-01-23 02:48:03
我写了一个简单的程序如下,用codeblocks进行单步调试,但走到while((ch=getchar())!=EOF)这一步的时候,那个黑窗口一弹出就立马最小化,而且输入时完全没反应,点击下一步后再看黑窗口,上面就就显示了刚才输入的,这是怎么情况
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nopy 2014-01-23
  • 打赏
  • 举报
回复
走到这一步时,这一句还没有执行,而程序进程是被挂起的。所以你的输入没有立即显示到程序上。 再往下走一步再输入就行了
赵4老师 2014-01-23
  • 打赏
  • 举报
回复
不要使用
while (条件)
更不要使用
while (组合条件)
要使用
while (1) {
 if (条件1) break;
 //...
 if (条件2) continue;
 //...
 if (条件3) return;
 //...
}
因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。
典型如:
下面两段的语义都是当文件未结束时读字符
while (!feof(f)) {
 a=fgetc(f);
 //...
 b=fgetc(f);//可能此时已经feof了!
 //...
}
而这样写就没有问题:
while (1) {
 a=fgetc(f);
 if (feof(f)) break;
 //...
 b=fgetc(f);
 if (feof(f)) break;
 //...
}
类似的例子还可以举很多。
小白在此 2014-01-23
  • 打赏
  • 举报
回复
就是影响啊,万一输入错误怎么办
图灵狗 2014-01-23
  • 打赏
  • 举报
回复
不影响调试就OK了啊。
引用 楼主 u013545836 的回复:
我写了一个简单的程序如下,用codeblocks进行单步调试,但走到while((ch=getchar())!=EOF)这一步的时候,那个黑窗口一弹出就立马最小化,而且输入时完全没反应,点击下一步后再看黑窗口,上面就就显示了刚才输入的,这是怎么情况

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧