我是 C 的新手,我一直在 Fedora 中测试我的程序,使用 gcc 和 gdb 进行调试。我有一个接受用户输入的程序。如果输入的第一个字符串是“create”,那么我看一下第二个命令,如果那是“object”,那么我继续执行 createObject 函数。
希望我的代码能让这更清楚一点:
static void parseCmd(char **input) {
if(!strcmp(input[0], "create")) {
if(!strcmp(input[1], "object")) {
if(input[2] && strcmp(input[2], ""))
createObject(input[2]);
else
printf("Object needs a name\n");
}
else
printf("Command needs more parameters\n");
}
else
printf("Command not recognized\n");
}
当我测试输入只是“创建对象”(对象后没有空格,只有 ENTER 键)
在 Linux 中它打印“对象需要一个名称”
但是在 Windows 中,程序崩溃了,它只是挂起。如何更改代码以使其行为方式与在 Linux 中的行为方式相同?