분수 클래스의 경우 오버로드 >>를 처리하고 있으며 처리해야 할 입력 유형이 몇 가지 있습니다. 예 : 1/2 (일반 분수), 2 + 3/4 (혼합 숫자), 2 (정수). 교수는 정수 다음에 두 번째 문자가 무엇인지 알아 내기 위해 peek() 함수를 사용해야한다고 말하면서 아래에 힌트를 제공했습니다. 즉, temp
을 int로 선언해야한다는 것입니다. 내 질문은 temp가 int 인 경우 나머지 부분을 어떻게 구합니까 (정수가 아닌 경우)?peek()을 사용하여 입력 스트림 오버로드
내 경험에 비추어 볼 때 temp를 대신 문자열로 선언하고 peek을 사용하지 않을 것입니다. 그러나 int와 peek 접근은 교수가 그것을 제안한 이후로 약간의 장점을 가져야 만합니다. 당신이 in>>temp
를 사용할 때 몇 가지 숫자가 아닌 문자가 발견 될 때까지 여기
in >> temp;
if (in.peek() == '+'){
doSomething...
} else if (in.peek() == '/'){
doSomethingElse...
} else {
doThirdOption
}
맞아요. 입력 스트림에서 다음 번호를 읽는 방법에 궁금한가요? 즉 + 또는 /? 우리가 이미 temp를 + 또는/앞에있는 첫 번째 int 인 int로 선언했기 때문에 그것은 나에게 이해가되지 않습니다. –
당신이 할 수있는 일은 각 반복 끝에 값을 추가 할 수있는 합 변수를 갖는 것입니다. 그런 다음 동일한 임시 변수를 사용하여 기호 다음에 입력을 얻습니다. –