월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
sacnf %d에 문자를 넣을때는 어떻게 되나요?
안녕하세요. 강의 정말 잘 듣고 있습니다. 버퍼와 관련하여 질문드릴게 있습니다. int num; scanf("%d", &num); 이런 코드를 실행했을때 num값에 문자를 대입하면 어떻게 해석되는건가요? 예를들어 콘솔창에 a를 누르고 엔터를 치면 a\n이 입력버퍼에 들어가고 버퍼에서 scanf로 전달되잖아요? 이때 printf를 통해서 num값을 출력해보면 -888993613 이런식으로 무작위 값을 반환하던데 이건 a값을 받아들이지 못해서 나는 에러값인가요? 전 처음에 a를 넣으면 알아서 97로 받아들일줄 알았거든요 또한 가장 궁금한건 입력버퍼에 있던 a\n은 통째로 사라지는건지 그대로 남아있는건지 알고싶습니다.
- 미해결홍정모의 따라하며 배우는 C언어
arr[-1]의 경우 어떻게 되는지 궁금합니다.
현재 아두이노를 배우고 있는데 이것이 코딩할 때 C언어를 씁니다. 일단은 코드블럭으로 확인해본 결과 이렇게 하면 arr[-1]에 쓰레기값이 나오고, 제대로 0으로 대입도 된다는 것을 확인하였습니다. 그렇다면 arr배열의 바로 그 전의 메모리 공간이라고 추측이 가능한데, 혹시나 컴파일러가 미연의 버그를 방지하기 위해 사용가능 메모리의 제일 앞쪽과 제일 뒷 쪽, 그리고 각 선언한 저장공간들을 띄엄띄엄 해놨는지 궁금합니다. 제가 이런 질문을 한 이유는 pinMode 함수는 그 핀에 전기를 흐르게 할지 말게할지 하는 함수인데 OUTPUT이 출력이 가능하도록 설정해놓는 겁니다. 전역변수로 선언된 switch_pin과 led배열에 들어간 값은 핀 번호입니다. INPUT_PULLUP은 전류가 흐르냐 안 흐르냐, 흐르지 않다면 전기가 고여있어 1로, 흐른다면 고여있지 않다는 뜻으로 0으로 표시됩니다. 그래서 빵판에 물리적인 스위치를 눌렀을 때 흐르게 되어 1로 됩니다. setup 함수와 loop함수는 코딩환경을 켜면 main함수처럼 기본 입니다. digitalRead는 신호를 읽는 것이고, digitalWrite는 디지털 신호를 쓰는 명령입니다. 위의 코드는 스위치를 눌렀을 때마다 차례로 LED가 점등되고, 전에 점등된 스위치를 꺼지게 함으로써 계단처럼 차례로 LED가 점등되는 코드입니다. 일단은 위 코드는 문제없이 작동을 하였습니다. 그런데 먼저 말한 궁금증 컴파일러가 미연의 버그를 방지하기 위해 사용가능 메모리의 제일 앞쪽과 제일 뒷 쪽, 그리고 각 선언한 저장공간들을 띄엄띄엄 해놨는지 궁금합니다. 가 아닐 경우는 버그가 발생할 지도 모릅니다. 그러나 arr[-1]을 쓸 경우 위처럼 정말로 간단하고 짧게 코딩이 가능한데, 그렇지 않을경우 if문을 하나 더 쓰는 둥 깔끔하게 되지 않습니다. 가르쳐 주실수 있나요.
- 미해결홍정모의 따라하며 배우는 C언어
5:15초에 strcat 구현질문
strcat 함수를 교수님이 보여주신 사이트에 있는 그대로 함수를 가져와서 디버깅 찍어보았습니다. char* my_strcat(char* d, const char* s) { char* ptr = d + strlen(d); while (*s != '\0') *ptr++ = *s++; *ptr = '\0'; return d; } 변수이름은 걍 짧게 해놨는데, 디버그 돌려서 차례차례 진행하다보면 char* ptr=d+strlen(d);< 이거 다음문 갈때 디버그가 강제 종료되면서 스레드가 종료되었습니다 2개와 프로그램이 종료되었습니다가 뜨면서 디버그가 강제로 종료됩니다. 원인이 뭘까요?
- 미해결홍정모의 따라하며 배우는 C언어
scanf 함수의 서식 지정자 질문
위 코드를 보면 int형인 ch에 scanf함수를 써서 %c인 문자형으로 입력을 시켜봤습니다 그래서 printf함수로 %c와 %d 출력을 동시에 해 봤는데 문자형으로는 출력이 정상적으로 나오지만 정수형으로는 출력이 -1이 나옵니다(다른 값을 입력해도 -1이 나옴) 질문 1) 아스키코드대로 문자형으로 a가 나왔으면 정수형으로는 97이 나와야 하는것 아닌가요? 질문 2) 디버깅을 해서 변수 ch에 저장된 값이 무엇인지 확인을 해보았으나 Autos 항목에서 ch의 value가 0'\0'으로 확인됩니다 (다시 입력을 했을 시엔 쓰레기값이 뜸) 출력은 정상으로 되는데 Value에 쓰레기 값이 들어있는건 무슨 경우인가요? 왜 그런거죠?
- 미해결홍정모의 따라하며 배우는 C언어
for( int i = 0 ; )이 안됩니다 ㅜㅜ
저 저는 왜 이게 오류가 뜰까요 ㅜㅜ?
- 미해결홍정모의 따라하며 배우는 C언어
실행이 안됩니다ㅠ
삭제된 글입니다
- 미해결홍정모의 따라하며 배우는 C언어
에러
Error LNK1168 cannot open C:\Users\jungh\source\repos\Sol1\Debug\Project1.exe for writing Project1 C:\Users\jungh\source\repos\Sol1\Project1\LINK 1 이렇게 안 열린다고 뜨는데 어떻게 해야 하나요?ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
- 미해결홍정모의 따라하며 배우는 C언어
visual studio 사용
제가 강의를 맥북에서 듣는데 윈도우스랑은 약간 다른것 같아서요. 비쥬얼 스튜디오도 약간 달라요. 그래서 어떻게하면 좋을까요?
- 미해결홍정모의 따라하며 배우는 C언어
printf, scanf 표준라이브러리함수
비주얼 스튜디오 폴더 내에서표준라이브러리 함수 printf, scanf 원본소스코드파일 찾아서 보고 싶은데 못 찾겠어요.헤더파일stdio.h는 찾았는데 라이브러리 파일들은 어딨는지 모르겠습니다. 비주얼 스튜디오 폴더 내에서 경로가 어떻게 되나요?
- 미해결홍정모의 따라하며 배우는 C언어
10:05분 코드에서 질문드립니다.
복습하는 과정에서 질문드립니다. 기초적인 질문이라 생각은하는데 이해가 안되서 질문드립니다. 강의에서는 sizeof(str5)를하면 4가 출력이 되었습니다. 그런데 제가 생각하기에는 char형이면 1이 출력이 되어야한다고 생각하는데 왜 4가 출력이 되는건가요...?
- 미해결홍정모의 따라하며 배우는 C언어
제한자 const에 관한 질문
질문이있습니다. 위 강의 내용이 const 가 붙지 않은 변수선언일 경우에는 int angel = 1004; 처럼 여기서는 angel이 변수로서 변할수있고 여기서 const int angel= 1004; 가 되어 제한자가 붙어버리면 angel 이 더이상 바뀌지 못하고 그냥 기호적인 상수로서 고정되어 버리는 거다.라는 의미인건가요? 궁극적으로 const가 붙으면 리터럴상수또한 고정되어 버리는 건가요?
- 미해결홍정모의 따라하며 배우는 C언어
12:27분, 헤더파일을 넣는 이유
12:27분에 my_print_function.c 파일에 #include "my_print_functions.h" 하셨는데, 왜 이 파일에 헤더파일을 집어 넣는지 잘 모르겠습니다. my_print_function.c에 들어간 my_print_functions.h을 지우고 main.c을 실행해도 잘 실행되는데 왜 들어간건가요??
- 미해결홍정모의 따라하며 배우는 C언어
명시적형변환 질문
[이승환] [오후 4:49] #include <stdio.h> int main(void) { int a; scanf_s("%d", &a); a = (float)a; printf("%f", a); return 0; } 이렇게 a를 명시적형변환했다생각하고 3입력하면 3.000000출력될지알았는데 0.000000이뜨는데 어떤부분이 틀린건지 알고싶습니다
- 해결됨홍정모의 따라하며 배우는 C언어
컴퓨터의 구성요소 역할 질문
1. 주 기억장치(=메모리)가 전원을 끄면 데이터가 사라지잖아요. 그래서 전원을 꺼도 데이터가 저장되는 보조기억장치로 보완한다는데 CPU(연산을 하는 부분)는 보조기억장치에 직접 접근할 수 없어서 주 기억장치랑만 왔다갔다한다는데 그러면 CPU는 전원이 켜져있을 때만 작동하고, 주 기억장치랑만 왔다갔다하므로 얘도 전원을 키면 주 기억장치 처럼 데이터가 싹 사라지나요?? 맞다면 전원이 꺼져있는 상태라면 운영체제나 그 외 데이터 이런것도 싹 없는 상태이고 전원을 킬때마다 보조기억장치에서 꺼내쓰는거겠네요? 맞나요? 2. 근데 강의 도중 메모리(=주 기억장치)가 저장을 하는 기능이라고 말씀하신 것 같은데 얘는 전원을 끄면 데이터가 싹 사라지잖아요...? 근데 보조 기억장치는 안사라지잖아요. 그럼 데이터를 저장하는 기능하는 것은 보조 기억장치 아닌가요? 그리고 또 정리하자면 저장하는 기능= 보조기억장치 주기억장치는 그냥 속도를 빠르게하는 역할 및 CPU에 정보를 전달하는 역할 인건가요? 3. RAM은 주 기억장치에 속한 장치인가요? 임의 접근이 가능한 메모리 라고 하셨는데 정확히 무엇을 접근하는건지 모르겠어요. 4. 그래픽카드는 그냥 계산량을 늘리는 역할을 하는건가요? 5. FDD와 자기테이프의 역할은 뭔가요? (그냥 어원만 알려주셔서..ㅠㅠ) 6. CPU에서 레지스터가 메모리처럼 저장을 하는 부분이라는 말인가요?.. 그니까 연산말고도 저장도 한다는 말인가요? 그 저장되는건 메모리에서 얻은 정보들? 죄송해요 처음 공부하는거라 궁금한 것이 산더미네요ㅠㅠ 뭔가 자세히 설명은 안해주신 것 같은데 지금 수준에서는 필요 없어서 그런건가요??
- 미해결홍정모의 따라하며 배우는 C언어
7.8 단어세기 예제
7.8 단어세기 예제에서 if (!isspace(c)) n_chars++; 이렇게 n_chars++; 을 해주면 단어 수가 세어지는 이유가 무엇인지 잘 모르겠습니다... 원리를 잘 모르겠어요 ㅠㅠ 그리고 line_flag = false; 와 line_flage = true; 의 의미를 잘 모르겠는데 구체적인 설명과 정의 및 활용 방법을 설명해주시면 감사하겠습니다!
- 미해결홍정모의 따라하며 배우는 C언어
사라진 메모리에는 무슨 값이 남아있나요?
내용 그래도 입니다 ㅎㅎ없어진 메모리 공간에 값이 어떤것이든 있긴 할텐데 어떤값인지는 모르는건가요? 아니면 남아있긴 한가요?
- 미해결홍정모의 따라하며 배우는 C언어
3:07에 나오는 코드에 관해서 질문드립니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { printf("Please input an integer and press enter.\n"); long input; char c; while (scanf("%ld", &input) != 1) { printf("Your input - "); while ((c = getchar()) != '\n') putchar(c); printf(" - is not an integer. Please try again.\n"); } printf("Your input %ld is an integer. Thank you.\n", input); return 0; } 이 코드를 실행해서 교수님께서 "hello what is integer?"를 입력하게 됩니다. 여기에서 scanf를 통해 input이라는 변수에 값을 받게 되는데 버퍼 청소 및 잘 못 입력된 값을 출력할때는 c라는 변수를 통해 getchar와 putchar를 이용하고 있습니다. input의 값을 c에 대입(?)해 준적이 없는 것 같은데 input에 입력된 값이 getchar를 통해 c로 출력이 되는 것이 scanf와 getchar가 같은 버퍼를 사용하고 있다는 뜻인가요? 만약 같은 버퍼를 사용하는 것이라면 어떻게 연결이 되어 있는지 궁금합니다..
- 홍정모의 따라하며 배우는 C언어
dec
삭제된 글입니다
- 미해결홍정모의 따라하며 배우는 C언어
질문
#include <stdio.h> int main() { int a; a = 3123; printf("a=%d and address of a =%d\n", a, &a); a = 200; printf("a=%d and address of a =%d\n", a, &a); return 0; } 을 실행하면 a=3123 and address of a =10157436 a=200 and address of a =10157436 이렇게 a의 포인터가 같은 곳이고 3123이 들어있던 a에 200이 들어가게 되면서 3123이 없어지는데 이번 강의에서 같은 변수 n에 1,2,3,4,..... 숫자들이 대입되는데 같은 포인터에 덮히는 게 아니라 다른 포인터에 저장되는 것을 알 수 있습니다. 질문은 위 코드는 변수 a의 포인터가 서로 다른 3123, 200의 숫자가 같은 곳에 저장이 되고 강의에서는 변수 n이 숫자가 서서히 증가해도 왜 다른 포인터에 저장이 되는지 궁긍합니다. 혹시 n에 새로운 값을 대입할때마다 함수가 새로 실행 되기 때문에 다른 포인터에 저장되는 것인가요??
- 미해결홍정모의 따라하며 배우는 C언어
sum = i + j;의 위치
#include <stdio.h> int main() { int i = 0, j=0; int sum = 0; printf("input 2 intigers\n"); scanf("%d%d",&i,&j); sum = i + j; printf("%d+%d=%d",i,j,sum); return 0; } 이렇게 하면 실행했을 때 제대로 나오는데 sum = i + j;의 위치가 저 자리 아닌 곳에 놓으면 실행시 sum의 기능을 못하고 0으로 나오는데 왜 그런지 궁금합니다.