24분 20초경에 char str1[6], str2[6]; int count = scanf("%6s %6s", str1, str2); // run-time error 위의 코드를 실행시키면 런타임 에러가 발생하는데 그 이유가 궁금합니다. 교수님이 설명을 안하고 넘어가셔서 이걸 어떻게 이해해야 할지 모르겠어요. 그리고 25분 5초경에 int count = scanf_s("%5s %5s", str1, 6, str2, 6); 5자리에 있는 숫자와 6자리에 있는 숫자가 달라도 괜찮은 건가요? 이것도 설명이 없어서 어떻게 이해해야 할지 모르겠네요
강사님 다름이 아니라 인덱스 검색의 SearchByIndexAgeRange에서 작은 버그가 있어서 해당 내용 공유 드립니다. 검색 조건을 리스트에서 작은 값의 범위로 지정을 했을 시 아래 해당 코드에서 length 가 최소 값이 1이 되므로 항상 리스트의 작은 값이 출력이 되는 버그가 있습니다. 동작에 대한 예시 화면입니다. 따라서 length 를 구한 다음 리스트에서 해당 USERDATA의 age 값을 max 값과 비교를 해서 max 값보다 작을 경우에만 해당 코드들이 동작하게 되어야 하는 것이 맞는 것 같습니다. 다음과 같이 코드 수정 시 동작 화면입니다.
안녕하세요 강사님 [필수 실습 문제] 세 정수 총합 계산하기 (누산)에서 강사님께서는 int input, total; 이렇게 해당 변수를 0으로 초기화하지않고 ctrl+F5로 실행을 시키셨더니 아래와 같이 쓰레기 값이 나오셨는데 제가 할때는 Total 값이 6으로 잘 출력되더라구요 제가 이전 코드에서 정답 코드로 실행을 한번 시키긴했는데 그값이 계속 유지되어 Total값이 6으로 출력이 되는 건가요? 그리고 강사님처럼 메모리창을 띄어서 보려고 Total 변수에 중단점(F9) 설정 후 디버깅(F5)를 눌렀더니 함수는 실행되어 Total : 6이라는 값이 출력은 되지만 "디버기가 실행 중일 때에는 사용할 수 없습니다. "라고 뜨고 또한 위쪽 메뉴가 모여있는 곳에서 디버그(D) - 창(W)을 눌러봐도 메모리창을 실행할 수 있는 메뉴가 보이지 않습니다. 이번 경우에도 이렇고 예전에는 가끔씩 이러던데 이러한 이유가 뭐고 어떻게하면 해결 할 수 있을까요?
안녕하십니까? 강사님! "콘솔 I/O 버퍼 메모리 추적하기" 강의 내용 중 아래와 같은 코드가 나오는데 잘 이해가 안됩니다. print_iobuf((IOBUF_TEST*)fp); 여기에서 fp 파일 구조체를 IOBUF_TEST* 변수로 해석하겠다는 뜻인지요? IOBUF_TEST는 구조체 자료형인데 포인터 변수로 해석한다는게 잘이해가 안됩니다. 자세한 설명 좀 부탁드립니다 수고하십시오.
16진수 0x1.1p1에서 0xb.ap1로 바뀌는 게 대응하는 문자라서 그런 건가요? 같은 1인데 왜 바뀌는 문자가 다른지 모르겠어요. f5와 d5를 출력할 때 %a는 정수 출력할 때 %d와 똑같은 역할인가요? 그리고 f5와 d5를 출력했을 때 나오는 수를 어떻게 해석하는 건지 잘 모르겠습니다.
선생님께서 말씀하신 대로 메모리 디버깅을 진행하였습니다. while문을 지날 때마다 기준 요소의 값 + 1 더하여 이동하는 것을 잘 볼 수 있었습니다. 그런데 메모리 디버깅을 보는 와중에 저렇게 붉은색으로 표시되는 메모리 값들을 발견했습니다. 왜 이렇게 표시되는 건지 중요한 건가 싶어서 질문드립니다. 다음 강의에서 찾았습니다~! 🤓
질문1. float d = 0.00; scanf("%f", &d);일 때 사용자가 데이터를 입력하면, 데이터가 입력버퍼로 이동한다 scanf는 입력버퍼에서 데이터를 읽어들일 때 형식지정자가 %f 이므로 float형으로 데이터를 변환한다 %f와 저장할 변수의 타입이 일치므로 float형 변수 d의 메모리 공간에 데이터를 저장한다 성공적으로 입력받은 아이템의 개수 1을 반환한다 scanf가 이 과정대로 동작하는지 궁금합니다 --------------------------------------------------------------- 질문2. 위 과정이 맞다면 double d = 0.00; scanf("%f", &d); printf("%f", d); 에서 사용자가 3.14를 입력하면 3.14가 입력버퍼로 이동한다 입력버퍼에서 3.14를 읽어들일 때 %f로 변환한다 %f와 저장할 변수의 타입이 일치하지 않으므로 double형 변수 d의 메모리 공간에 저장하지 못한다 성공적으로 입력받은 아이템의 개수가 없으므로 0을 반환한다 이렇기 때문에 실행하고 어떠한 값을 입력하더라도 초기값인 0.000000이 출력되는 건가요? --------------------------------------------------------------- 질문3. unsigned ui; scanf("%i", &ui); printf("%i", ui); %i는 signed int 타입 변수의 형식지정자로, unsigned int형 변수 ui와 다른게 맞나요? 근데 사용자가 -123을 입력하면 어떻게 변수 ui의 메모리 공간에 -123을 저장해서 그것을 출력할 수 있는지 궁금합니다
강의에서 설명해주신 2의 보수 방법에서, 양수를 표현하는 방법에 관해 질문이 있습니다. 강의에서 -5를 예로 드신 건 이해했는데, 반대로 5를 표현하려 할 때는 어떻게 되나요? 5를 2진수로 변환->00000101(2) ->보수:11111010(2) ->더하기 1: 11111011(2) 인데, 그럼 양수 5와 음수 -5의 구분이 안 되지 않나요? 강의에서 첫 비트가 1이면 음수, 0이면 양수인 것으로 구분한다고 하셨는데, 8개 비트 앞에 부호에 해당하는 1비트를 더 둔다는 뜻인가요? 그러니까, (1/11111011->-5, 0/11111011->5) 이런 식으로 작동하는 건가요? 좋은 강의 감사합니다.
교수님께서 작성하신 강의답안에서 질문이 있습니다. 보면 scanf함수를 따로 쓰지 않고 status = scanf("%d", &num);만 입력하셨는데 이렇게 적어도 scanf함수가 동작하는 이유가 궁금합니다. 또, 이 윗줄 바로 위에 scanf함수를 따로 실행해도 상관없는지도 궁금합니다.
안녕하세요 선생님 섹션9 형식 문자 기반 문자열 입력강의에서 scanf_s와 get_s()의 차이점이 제가 이해하기론 scanf_s는 함수를 작성하고 콘솔창이 생기고 값을 입력할때 값 입력 중간에 white space(스페이스바)를 입력하면 입력이 끊긴다. ex) 1. '안녕하세요' 는 입력이 되지만 2. '안 녕하세요' 는 '안' 이라는 글자만 입력이 되고 끊긴다. 라고 이해를 했는데 맞을까요? get_s()는 이와 반대로 값 입력 중간에 white space(스페이스바)를 입력해도 입력이 유지된다. ex) 1. '안녕하세요' 는 입력 가능 2. '안 녕하세요' 입력하면 '안 녕하세요' 라고 white space까지 입력이 된다. 이게 맞을까요? 그리고 혹시 강사님께서 말씀해주신 것 이외에 scanf_s와 gets_s()의 차이점이 있을까요? 감사합니다.
코드를 작성하고 F5로 디버그를 하게되면 최종 결과값을 보여주기전에 콘솔창이 닫힙니다 crtl + F5(디버그하지 않고 시작)으로 하면 최종값까지 나온뒤 아무키를 눌러야 콘솔창이 닫힙니다 코드의 문제인가 싶어 검토하고 해설영상 보며 똑같이 타이핑을 해도 디버그를 하고 콘솔창이 뜨면 최종결과값이 뜨지않고 콘솔창이 닫힙니다 예로 뺄셈 연산 직접구하기에서 두 정수를 입력하는거까지는 잘 넘어가는데 뺄셈의 결과값이 출력되기전에 콘솔창이 닫혀버립니다 비쥬얼스튜디오의 설정이 무언가가 잘못되있는걸까요?