所以我有以下代码:

void main(int argc, char **argv)
{
    int loggedIn=0;
    char *currentCommand;

    while (!loggedIn)
    {
    printf("Enter your command:");
    scanf("%s",currentCommand);
    printf("\n%s\n",currentCommand);
    }
}

问题是scanf()第一次运行良好,然后开始读取(null),输出将在无限循环中Enter your command: (null)
我想输入更多的命令,并在更改loggedin的值时停止,但一旦输入一个命令,它就会开始无休止地打印。

最佳答案

您需要使用malloc为currentcommand指针分配内存(并在末尾释放内存),或者在开头为其指定一个大小,如

char currentCommand[256];

10-06 07:01