사용자로부터 입력을받는 작은 프로그램을 작성 중입니다. 입력은 정수, 학생 수에 대해 2 개의 이중 숫자, 그리고 최대 크기 20의 문자 배열이어야하는 연구 분야입니다. 이제 수업을 작성할 때 어떻게해야할지 잘 모르겠습니다. 생성자에서 문자 배열에 기본값을 제공합니다.
이것이 제가 클래스와 생성자로 작성한 것입니다.
class nemandi
{
public:
nemandi(int num, double g1, double g2, char field[]);
void birta();
friend bool operator <(nemandi& nem1, nemandi& nem2);
private:
int studentNumber;
double grade1;
double grade2;
double medaltal();
char fieldOfStudy[20];
};
nemandi::nemandi(int num, double g1, double g2, char field[])
{
studentNumber = num;
grade1 = g1;
grade2 = g2;
fieldOfStudy[20] = field[20];
}
이것은 작동하지 않으며 온라인에서 이에 대한 해결책을 찾을 수 없습니다. 누구든지 생성자에서 char 배열에 기본값을 제공하는 방법의 올바른 방향으로 나를 가리킬 수 있습니까 ??
미리 감사드립니다!
편집 : 교체 fieldOfStudy[20] = field[20];
와 memcpy(fieldOfStudy, field, sizeof(fieldOfStudy));
트릭을했다! 도와 주셔서 감사합니다 :)
fieldOfStudy[20] = field[20];
필드에서 fieldOfStudy로 위치 20에 문자를 할당하고 있습니다. 대신 memcpy를 사용하십시오.
memcpy(fieldOfStudy, field, sizeof(fieldOfStudy));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다