c++ 빈칸 에 머가 들어가야할까요 (공부햇음!)
조회수 1195회
1 답변
-
옙.. 이전 질문 보다 훨씬 보기 좋네요. 다만 이런식으로 질문 하시는 것보단 무엇 무엇을 해보았는데 이것이 안된다 혹은 이것을 잘 모르겠다 와 같은 식으로 질문 해주시면 좋을 듯 싶습니다. 이곳은 숙제를 대신해주는 곳이 아닌 모르는것에 대해서 질문하고 답변하면서 서로서로 배워가는 곳이라고 생각해 주시면 좋을듯 싶습니다.
일단 Car의 생성자가 잘못 되긴 하였습니다. std::string을 NULL로 성정하란 말이 조금 잘못되었지만 아마 빈 문자열로 만들라는 의미로 생각하시면 됩니다. 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
를 출력하는 코드를 참고하면 무리 없이 작성하실 수 있을 것 입니다.
댓글 입력