CDT下到底如何调试带有输入的C程序?

悬赏:30 发布时间:2008-07-03 提问人:jones (中级程序员)

环境:Eclipse3.4 + CDT + cygwin
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    char name[20];
    printf("Please enter your name:");
    scanf("%s",name);
    printf("%s says, !!!Hello World!!!",name); 
    return EXIT_SUCCESS;
}


如果是正常运行,则应该先输出第一个printf中的字符串,然后等待输入,我在控制台输入完成后回车,然后输出第二个printf中的字符串。

但是运行后,Eclipse的控制台什么也没输出,当我随便输入一个字符串后,同时输出了第一个和第二个printf中的字符串。如果直接双击生成的exe文件是可以在cmd窗口中正常运行的。理论上应该执行到printf函数的时候我的控制台上就应该打印出提示信息的,可是为什么要等我输入一些东西后一股脑全给我扔出来了啊?

采纳的答案

2008-07-03 ham (资深程序员)

在第一个printf()语句之后加上
fflush(stdout)应该就可以输出了.

楼主可以参考一下这个帖子:
关于printf的刷新输出问题??

提问者对于答案的评价:
已经在eclipse的新闻组中找到答案
http://dev.eclipse.org/newslists/news.eclipse.tools.cdt/msg08763.html