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