错误:聚合对象的“{...}”初始化 - c

时间:2014-08-21 16:10:59

标签: c string char scanf

我是c的新手并尝试编写程序,并且我不断收到此错误:"初始化为“{...}”期望聚合对象"。

这是程序:

printf("password must be 5 charachters\n");
char password[] = scanf("%s", password);
int PasswordCalculation = strlen(password);
if (PasswordCalculation == 5)
{
    printf("good job!");
}
else
{
    printf("error");
}
getchar();
return 0;

我在" scanf"上收到了这一行的错误。功能:

char password[] = scanf("%s", password);

错误意味着什么,我该如何解决?

2 个答案:

答案 0 :(得分:2)

您需要为字符串分配内存,然后调用scanf

   char password[64];
   scanf("%63s", password);

答案 1 :(得分:0)

由于你刚刚学习C语言,我将对thumbmunkeys进行一些扩展回答。

将数组/字符串分配给大于所需的数组通常是个好主意。您的设计要求可能会在以后更改。

此外,%63s而非%s确保scanf只会读取null字符{63}的字符{1}}读取字符串时数组的结尾。否则,如果有人输入超过63个字符,您最终会遇到溢出问题。

详细了解scanf here