c++ 빈칸 에 머가 들어가야할까요 (공부햇음!)

조회수 1195회

이미지

차량번호 입력 부분 빈칸부터 막히네요..

힌트만이라도 알려주시면안될까요

간단히 예시라도 있으면 좋을 텐데 엄두를 못내겟습니다

진짜 머리 꽁꽁싸매다 올립니다 도와주세요ㅜ

  • C++ 로 기초적인 클래스 작성방법을 학습하시고 C++ 입/출력 학습을 하세요. 차량번호 입력은 아래 제조년도에 힌트도 있네요. 정영훈 2018.10.15 18:35

1 답변

  • 좋아요

    4

    싫어요
    채택 취소하기

    옙.. 이전 질문 보다 훨씬 보기 좋네요. 다만 이런식으로 질문 하시는 것보단 무엇 무엇을 해보았는데 이것이 안된다 혹은 이것을 잘 모르겠다 와 같은 식으로 질문 해주시면 좋을 듯 싶습니다. 이곳은 숙제를 대신해주는 곳이 아닌 모르는것에 대해서 질문하고 답변하면서 서로서로 배워가는 곳이라고 생각해 주시면 좋을듯 싶습니다.

    일단 Car의 생성자가 잘못 되긴 하였습니다. std::stringNULL로 성정하란 말이 조금 잘못되었지만 아마 빈 문자열로 만들라는 의미로 생각하시면 됩니다. std::string은 생성자가 존재하여 기본적으로 빈 문자열로 생성됩니다. 따라서 별도의 작업이 필요하지 않지만 빈칸이 있기 때문에 아래와 같이 작성할 수 있습니다.

    Car() {
        carNo = ""; // 또는 carNo = std::string();
        productYear = 2016;
    }
    

    차량번호 입력 (공백 포함 입력 가능하도록)을 보시면 키보드를 통해 차량 번호를 입력 받아야 할 것입니다. C++에서는 std::cin을 사용하면 되겠지요. 하지만 문제의 조건인 공백 포함 입력 가능하도록입니다. 그렇다면 차량 번호를 입력하고 엔터를 치는 순간 까지의 문자열이 차량 번호가 되겠지요. 즉, 한줄을 입력 받는 다고 생각하시면 됩니다. std::getline()은 한줄을 입력받아 주는 함수 입니다. 아래와 같이 첫번째 인자를 std::cin, 두번째 인자를 carNo로 한다면, 문자열 한줄을 carNo에 넣어주게 됩니다.

    std::getline(std::cin, carNo);
    

    입력한 차량번호로 객체의 차량번호 지정을 보시면 Car 객체에 차량 번호를 넣어준다고 생각하시면 됩니다. Car 클래스는 void setCarNo(string cn)멤버 함수를 갖고 있으니 이를 호출하여 차량 번호를 넣어 주면 될것 입니다. 바로 이어서 제조 년도가 py에 저장되어 있으니 이또한 void setProductYear(int py) 멤버 함수를 호출해주면 될 것입니다. 즉, 아래와 같아지겠죠.

    carArray[i].setCarNo(carNo);
    carArray[i].setProductYear(py);
    

    myCar 객체의 정보 출력 (실행 결과 참조)는 실행 결과가 보이지 않지만 Car의 멤버 함수를 보면 void displayCarInfo()가 있는걸 보면 이걸 호출하면 되겠지요.

    myCar.displayCarInfo();
    

    입력한 친구들의 차 정보 출력 (실행 결과 참조) 이것도 실행 결과가 없으나 void displayCarInfo()을 호출하는 식이 되겠지요? 다만 입력한 차량 정보니 for문을 통해 입력 받았던 carArray배열의 원소들에 해서 해당 멤버 함수를 호출 해주면됩니다. 이 부분은 직접 해보세요. 앞서 있는 배열의 원소를 순회하는 for문과 바로 위의 myCar를 출력하는 코드를 참고하면 무리 없이 작성하실 수 있을 것 입니다.

    • 유동욱님 상세한 설명 너무너무감사합니다. 설명보고 단순히 답만적는게 아닌 공부가 많이 되었습니다! 다음부턴 "함께 공부해가는 곳"이라는 취지에 맞춰 질문하도록 하겠습니다! 감사합니다! 장재용 2018.10.15 22:09

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)