我对这里的代码有疑问,我在这个带有一个结构的简单代码中遇到错误,如果你编译它,那么编译器在错误语句中指出"表达式必须是可修改的左值" 。 我在这段代码中基本上想要的是分配一个带有struct数组的名称。 所以当写出x [1] .identification =" Id&#34 ;; ,然后编译器给出错误。 我一直坚持这个问题。
有人能解决这个问题吗?!
谢谢
以下是代码:
#include "stdafx.h"
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<iomanip>
#include<windows.h>
//#include <ctime>
//#include <dos.h>
#include<dos.h>
#include<conio.h>
#include<cstdio>
#define max 20
using namespace std;
struct person
{
char identification[20];
long int code;
char group [20];
int experience;
int age;
};
int main()
{
person x[10];
x[1].identification = "Id"; // this is where the error is being shown
system("cls");
return 0;
}
答案 0 :(得分:1)
您正尝试将const char*
分配给char
数组。这是没有意义的。请改用std::string
:
struct person {
std::string identification;
long int code;
std::string group;
int experience;
int age;
};
您可能还想创建构造函数,否则code
,experience
和age
未定义。你应该在施工时要求它们。