#include <stdio.h> int main() { char c; while ((c = _getch()) != '\n') { printf("%c", c); } printf("\n"); } 위 코드에에서 _getch함수로 문자하나를 입력받고 그걸 변수c에 저장 후에 개행문자가 아닐때와 비교를 해서 개행문자가 c에 들어오면 종료되도록 하고 아니라면 출력을 하도록 만들었는데 실행을 해보면 개행을 하게되면 종료가 아니라 콘솔창에서 처음 입력을 받은 곳으로 돌아갑니다 그 이유가 무엇인가요?
강의에서처럼 처음에 min에 대해서 임의로 입력자가 입력하지 않을 것 같은 값을 초기화해서 코딩하는 방법 말고, min을 선언만 하고 값을 초기화 하지 않거나, 정말로 꼭 초기화 해야한다면 0같은 값으로 초기화 해서 이 문제를 해결 하고 싶습니다. 어떻게 코딩해야하나요? 제 나름대로 시도 해봤지만 min 값이 0이 뜨거나 에러가 발생합니다.
안녕하세요. 지난번 질문에 상세히 답해주셔서 감사합니다. 추가로 ModelMapper 테스트 관련해서 문의드립니다. 기선님의 강의를 듣고 ModelMapper를 사용해보려고 하는데, 기존에 Mockito를 사용해서 테스트하던 부분이 ModelMapper를 적용하면서 Mocking이 잘 안되고 있습니다. 어떤 부분이 잘못되었는지 확인 부탁드립니다. @Test public void When_재료_리스트_조회_Then_정상_반환() { // Given Page<MaterialEntity> materialEntityPage = new PageImpl<>(Collections.singletonList(this.materialEntity)); given(this.materialRepository.findAll(any(Pageable.class))).willReturn(materialEntityPage); Material material = this.modelMapper.map(this.materialEntity, Material.class); // modelMapper Mocking 코드 given(this.modelMapper.map(any(MaterialEntity.class), eq(Material.class))).willReturn(material); // When final Page<Material> materialPage = this.materialService.readMaterialList(PageRequest.of(0, 10)); // Then assertThat(materialPage.getSize(), is(1)); assertThat(materialPage.getContent().get(0), instanceOf(Material.class)); assertThat(materialPage.getContent().get(0).getName(), is(this.materialEntity.getName())); assertThat(materialPage.getContent().get(0).getUnitName(), is(this.materialEntity.getUnitEntity().getName())); } @Service public class MaterialServiceImpl implements MaterialService { private final MaterialRepository materialRepository; private final UnitRepository unitRepository; private final ModelMapper modelMapper; public MaterialServiceImpl(MaterialRepository materialRepository, UnitRepository unitRepository, ModelMapper modelMapper) { this.materialRepository = materialRepository; this.unitRepository = unitRepository; this.modelMapper = modelMapper; } @Override public Page<Material> readMaterialList(Pageable pageable) { Page<MaterialEntity> materialEntityPage = this.materialRepository.findAll(pageable); // 테스트를 위해 추가: testMaterial에 null 값이 들어옴 Material testMaterial = this.modelMapper.map(materialEntityPage.getContent().get(0), Material.class); return materialEntityPage .map(materialEntity -> modelMapper.map(materialEntity, Material.class)); } }
클로저 강의를 듣다보니 문득 궁금한것이 생겼는데요. 자바스크립트에서는 다른 언어들(c나 자바) 처럼 init 이라는 개념자체가 없다고 알고있습니다. 어느 패턴은 js 파일 맨 밑에 var test = document.getElementById("test"); // 함수부분은 생략. function init() { testFunc(); test.addEventListener("click", test2Func); } init(); 위와 같이 init 함수를 임의로 만들어놓드라구요. (제가 생각하기에는) 그 안에다 최초 실행되는 이벤트들을 보기 좋게 모아둔 함수 인것 같은데요. 구글에 검색해보았을때는 키워드가 잘못된건지, 위 코드와 같은 패턴에 대한 정보를 찾지 못하겠습니다.ㅜ 대강... 조각들을 맞춰보면 변수들을 계속해서 유지? 사용하기 위한?? 초기화...?? 를 위한 함수 라는데 그게 정확히 있고 없고에 차이를 모르겠습니다. 답변 주시면 감사하겠습니다! 강의 항상 잘보고있어요
강의 내용대로 becomeFirstResponder()를 작성했을 때 바로 커서는 생기는데 키보드가 생기지 않습니다. 인터넷에 찾아보니 시뮬레이터-하드웨어-키보드- Toggle Software Keyboard를 하면 키보드가 뜬다고 해서 다음과 같이 진행해서 키보드가 뜨는 것은 확인했습니다. 하지만 해당 시뮬레이터를 끄고 다시 재실행했을 때는 키보드가 다시 자동으로 뜨지 않는다는 것을 알게되었습니다. 인터넷에서 알려준 위와 같은 방법으로 한다면 계속 실행시 마다 수작업으로 키보드를 켜주는 것인데 그렇게 하지 않고 강사님처럼 시뮬레이션을 키면 자동으로 키보드가 뜨게하려면 어떤 점을 고쳐야 하는지 궁금합니다.
안녕하세요? 복습을 하면서 느끼는 건데 강의에 정말 정성이 많이 들어간 것 같아요. 감사하게 생각하고 있습니다. 1. =========================================== Person의 생성자에 디폴트 파라미터를 넣지 않아도 정상적으로 작동합니다. 아마 순간적으로 비주얼스튜디오가 잘못 판단했던 거 같습니다. 강의화면에 나온 오류메시지를 보고 실험을 해봤는데요.아규먼트 타입이 안맞았다는 오류 같아요. 강의화면을 보면 요 오류메시지가 Person::Person에 아규먼트 타입이 (const std::string)과 일치하는 생성자가 없다? 라고 말하는 거 같은데 바로 넘어간 화면을 보면 이렇게 const std::string을 매개변수로 받는 생성자가 있거든요. 저는 const를 빼고 실험을 해보니까 같은 오류가 뜨더라고요. const를 다시 붙이니까 오류가 사라지고요. 그래서 일시적인 ide의 판단착오? 아닐까 생각을 해봤습니다. 2.========================================================== [30:00] 음성 바뀌어야할 것 같습니다. "Person클래스에 있는 것들은 student class와 teacher class에서 가져다 쓸 수가 있어요" 말이 바뀌어서 나와버린 거 같아요. 감사합니다.