在while循环中使用scanf("%[^\n]",command)

3
我想要一个无限循环,在每次循环中获取命令,以下是我的代码:
while ( 1 )
{
    char * command[100];
    printf("---| ");
    scanf( "%[^\n]",command);
    printf("%s\n",command);

}

由于某些原因,它只输入一次,循环不会在请求输入时终止。

我在这里做错了什么?

1个回答

2

定义应该是

char command[100];

而不是char *command[100] - 这是一个包含100个字符指针的数组。

另外,scanf() 不易于使用,我建议使用 fgets(command, sizeof(command), stdin); 然后移除换行符。

while ( 1 )
{
    char command[100];
    printf("---| ");
    scanf( "%s", command);
    printf("%s\n",command);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接