2015-04-13 85 views
1
struct user { 
    char username[20]; 
    char password[20]; 
} admin; 
admin.username = "admin"; admin.password = "password"; 

所以我得到一个编译器错误,说管理员没有声明一个类型。 当试图声明admin.username和admin.password时会出现此错误不命名类型错误(在一个变量上)C++

说实话,我完全在这里感到困惑,看不出什么是错的。 感谢您的任何帮助,你可以给。

+5

使用'的std :: string'。除非必须,否则不要打扰C字符串。 – chris

+1

您已经为字符串分配了内存。您应该复制字符串而不是分配。见strcpy函数http://www.cplusplus.com/reference/cstring/strcpy/ – evpo

+1

如果你想用C风格的字符串,你需要使用C风格的'strcpy'或相似。 –

回答

0

adminstruct user类型的变量,但您需要将赋值放入函数中以运行代码。您还需要将用户名和密码声明为指针,以便您可以轻松地为它们指定文字。你不能在全球范围内做到这一点。

struct user { 

    const char * username; 
    const char * password; 
} admin; 


int main() 
{ 
    admin.username = "admin"; 
    admin.password = "password"; 

} 

另一种方式是像这样做:

struct { 

    const char * username; 
    const char * password; 

    } admin = { "user", "password" }; 

或类似这样的,如果还需要确定结构:

struct user { 

    const char * username; 
    const char * password; 

} admin = { "user", "password" };