我是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);
错误意味着什么,我该如何解决?
答案 0 :(得分:2)
您需要为字符串分配内存,然后调用scanf
:
char password[64];
scanf("%63s", password);
答案 1 :(得分:0)
由于你刚刚学习C语言,我将对thumbmunkeys进行一些扩展回答。
将数组/字符串分配给大于所需的数组通常是个好主意。您的设计要求可能会在以后更改。
此外,%63s
而非%s
确保scanf
只会读取null
字符{63}的字符{1}}读取字符串时数组的结尾。否则,如果有人输入超过63个字符,您最终会遇到溢出问题。
详细了解scanf
here。