不命名类型错误(变量上)C++

不命名类型错误(变量上)C++,c++,struct,C++,Struct,所以我得到一个编译器错误,说管理员没有声明类型。 当试图同时声明admin.username和admin.password时,会出现此错误 老实说,我在这里完全困惑不解,看不出有什么不对。 感谢您提供的帮助。admin是struct user类型的变量,但您需要将赋值放入函数中才能运行代码。此外,还需要将用户名和密码声明为指针,以便可以轻松地为它们分配文本。您不能在全局范围内这样做 struct user { char username[20]; char password[20

所以我得到一个编译器错误,说管理员没有声明类型。 当试图同时声明admin.username和admin.password时,会出现此错误

老实说,我在这里完全困惑不解,看不出有什么不对。 感谢您提供的帮助。

admin是struct user类型的变量,但您需要将赋值放入函数中才能运行代码。此外,还需要将用户名和密码声明为指针,以便可以轻松地为它们分配文本。您不能在全局范围内这样做

struct user {
    char username[20];
    char password[20];
} admin;
admin.username = "admin"; admin.password = "password";
另一种方法是这样做:

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" };

使用std::string。除非必须,否则不要使用C字符串。您已经为字符串分配了内存。您应该复制字符串,而不是赋值。请参阅strcpy函数如果要使用C样式字符串,则需要使用C样式strcpy或类似的字符串。是否可以复制并粘贴出现的编译器错误?结构应该编译得很好。分配是唯一的问题。@CaptainObvlious不,它不在这里,它是struct user类型的变量
struct  user {

    const char  * username;
    const char  * password;

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