Sho*_*kie 4 c++ eclipse debugging
我正在尝试使用Eclipse调试我用C++编写的程序.该程序包括从用户获取输入,但当我输入控制台的输入时,它将不会继续运行代码(它将继续要求输入).我不能在没有修复这个问题的情 谢谢.
代码卡在while循环fgets上:
int main(int argc, const char**argv) {
FILE* inputFile = NULL;
setlocale(LC_ALL, "");
if(argc == 2){
inputFile = fopen(argv[1], "r");
if (inputFile == NULL){
printf("Problem opening file %s, make sure correct path name is given.\n", argv[1]);
return 0;
}
}
else {
inputFile = stdin;
}
char buffer[MAX_STRING_INPUT_SIZE];
// Reading commands
while ( fgets(buffer, MAX_STRING_INPUT_SIZE, inputFile) != NULL ) {
fflush(stdout);
if ( parser(buffer) == error ){
printf("ERROR\n");
break;
}
};
fclose(inputFile);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题来自Eclipse缓冲控制台输入.修复它的一种方法是使用Windows/DOS本机控制台强制Eclipse进行调试.
这里详细介绍了该过程,但简要说明: