정인성
10
2021-04-12 00:40:01
3
137

C++ 구조체와 함수 코딩 중 질문 드립니다.


#include<iostream>

using namespace std;

int cnt = 0;

struct num{

int x;

int y;

};

struct name {

char Stu[30] = { 0 };

num number;

};


int input(int& a) {

if (cnt == 0) {

cout << "입력할 수 : ";

cin >> a;

cnt++;

return a;

}

if (cnt == 1) {

cout << "입력할 수 : ";

cin >> a;

cnt++;

}

}


void input(char *pt) {

if (cnt == 2) {

cout << "입력할 글자 : ";

cin >> *pt;

cnt++;

}

}


int main() {

int num = 0;

struct name student;

input(student.number.x);

input(student.number.y);

input(student.Stu);

cout << student.number.x << endl;

cout << student.number.y << endl;

cout << student.Stu;

}


현재 이 상태에서 student.Stu에 제대로 값이 입력되지 않습니다. 혹시 함수 리턴값이 문제가 있나 싶어서 void input(char *pt)를 void* input(char* pt), return pt;로 변경했습니다만... 처음이랑 같이 이상한 값이 출력되었습니다. 혹시 이걸 해결하기 위해서 어떻게 코드를 고쳐야하나요..? 

0
  • 답변 3

  • 장독깨기
    3k
    2021-04-12 01:48:35

    void input(char *pt) {

    if (cnt == 2) {

    cout << "입력할 글자 : ";

    cin >> pt;

    cnt++;

    }

    }


  • 언비튼
    35
    2021-04-12 01:52:57

    input 의 매개변수로 student.Stu 를 쓰는데, 이게 어떤 값을 의미하는지, 

    그 의미하는 바로 cin에 어떤 값을 넣어야 할지 생각해보세요,

  • 정인성
    10
    2021-04-12 09:13:00

    포인터 값 저장하는 방식을 복습해봐야 할것 같습니다 ㅎㅎ

    알려주셔서 감사합니다! 

  • 로그인을 하시면 답변을 등록할 수 있습니다.