월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C언어
12:37 strncpy() 함수 질문
char dest[100] = ""; char source[] = "Start programming!"; strncpy(dest, source, 5); 를 출력하였을 때 정상적으로 Start가 출력 된것은 이미 dest[]에 '\0'가 들어있어서 그런것이다 라고 하셨는데 덮어쓰기 되는 함수라 dest의 값이 '\0' 에서 Start로 덮어 씌워지면서 '\0'이 사라지고 문제가 발생해야하는 것 아닌가요?
- 해결됨홍정모의 따라하며 배우는 C언어
질문 있습니다.
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a, b, c; printf("Input seed money : "); scanf("%d", &a); printf("Input target money : "); scanf("%d", &b); printf("Input annual interest (%%) : "); scanf("%d", &c); int year = 0; while (a < b) { a = a + a * c / 100; year++; printf("%d년 : %d원\n", year, a); } } 제가 작성했던 코드는 이러한데요 중간 식에서 a = a + a * c / 100; 을 a= a*(1+(c/100));로 작성하니까 숫자가 더해지지가 않던데 왜그런가요?ㅠㅠ 곱셈 나눗셈 연산자 모두 잘 썼고 괄호로 순서만 정해줬는데 a는 계속 변하지 않네요.. 왜그런가요?!
- 미해결홍정모의 따라하며 배우는 C언어
2:50 질문 있습니다.
11-1 강의에서 교수님께서 const char m2[15] = { 'L', 'o', 'v', 'e', ' ', 'y', 'o', 'u', '!', '\0'); 에서 '\0'를 빼먹어도 컴파일러가 대신 '\0'를 대신 넣어준다고 하셨고 실제로 '!' 뒤의 자리가 '\0'로 채워졌습니다. 근데 이 강의 예제에서 char str[] = { 'H', 'I', '!' }; puts(str); 에서는 출력에 '\0'를 인지하지 못하고 외계어가 출력되는 것은 char str[]의 인덱스 사이즈가 초기화되지 않아서이기 때문인건가요?
- 미해결홍정모의 따라하며 배우는 C언어
파일 read경로
파일 입출력에서 파일을 읽어올때 visual studio 프로젝트 파일이 있는 폴더에 읽어올 텍스트파일을 만들고 나서 fopen "r"모드로 읽어올려고 하면 항상 if(fp=fopen("test","r")==NULL) printf("fail to open your file"); 이부분에 의해서 fail to open your file이라 콘솔창에 뜨고 읽어오지를 못하는데..제가 봤을때 파일의 경로 문제?인거 같은데 이거를 어떻게 해결해야 할까요???
- 해결됨홍정모의 따라하며 배우는 C언어
intmax
intmax_t 관련 질문 있습니다. 자료형의 사이즈를 재보니 intmax_t와 long long모두 8U가 나왔는데요, 선생님꼐서 다른 자료형과 다른 intmax_t의 특징은 포터블 타입이다..라고 하셨는데 이때 포터블 타입은 이식성이 좋은 자료형이라고 생각해도 되나요? 지금 현재 제가 사용하는 컴퓨터에선 long long 과 intmax_t가 어떤 숫자를 저장하는데에 차이가 없는 것처럼 보이지만 다른 컴퓨터에서 가동 시 intmax_t는 고정적이다,.라고 보면 되는건가요?????
- 해결됨홍정모의 따라하며 배우는 C언어
printf
좋은 강의 감사드립니다. 제가 이해한 바로는 결국 형식지정자를 사용할 때에 stack의 크기와 맞아야 하고 자료형이 맞아야 올바르게 printf가 작동한다..인데요 출력하려는 데이터의 크기와 형식 지정자의 사이즈가 완전 정확히 일치해야하나요? 1. 형식지정자가 더 크면 안되나요? printf("%d", INT_MAX) => 2147483648 printf("%lld", INT_MAX) => 71230913765179391 혹은 printf("%lld", 3)=>3이 아닌 다른 숫자... 이 경우에는 lld가 INT_MAX나 숫자 3의 크기보다 더 과하게 읽어내서 그런지 숫자가 이상해지는데 이때는 왜 이런 숫자가 나오나요? INT_MAX라는 데이터의 스택을 읽기에 과한 형식 지정자여서 그런가요????? 2.printf("%hhd, %u\n", INT_MAX , INT_MAX ); 의 결과값으로 0, 2147483648 두 숫자가 나오는데요, INT_MAX가 stack에서 4byte를 차지할 것 같은데요 %hhd는 1byte를 읽어낼 것 같은데 그렇게 되면 강의해서 말씀하신 원리대로 밀리는바람에 뒤에있는 수도 정상적으로 출력되면 안되지 않나요? 총 8byte라는 스택에서 hhd(1byte) u (4byte)를 읽어내니 뒤에숫자도 정상적으로 출력되면 안될 것 같은데 이 경우엔 정상적인 값이 나오더라구요...왜그런지 궁금합니다.!!!
- 미해결홍정모의 따라하며 배우는 C언어
21:00 fgets()함수 EOF 관련 질문
char small_array[5]; puts("Enter long strings:"); //fgets(small_array, 5, stdin); // FILE* _Stream printf("%p\n", small_array); printf("%p\n", fgets(small_array, 5, stdin)); // 만약 fgets()가 EOF를 만나면 NULL을 반환한다. // 콘솔에 Ctrl + z를 입력하면 인위적으로 EOF를 입력할 수 있다. fputs(small_array, stdout); return 0; 에서 EOF만 입력했을 때는 NULL이 반환되지만 문자열 + EOF 예를 들어 abc^Z를 입력했을 때는 NULL이 아닌 small_array의 주소값과 동일하게 출력됩니다. EOF를 만나는 경우에 NULL이 반환된다고 하셨는데 문자열 + EOF의 경우가 이해가 되지 않아 질문합니다.
- 미해결홍정모의 따라하며 배우는 C언어
flag 개수
flag는 하나의 형식 지정자에 하나밖에 못쓰나요? 가령 "%-010i"를 활용했었는데요, 1234567이 있다고 가정하면 1234567000이 출력될 줄 알았는데 0은 따로 출력이 안되어서요!
- 미해결홍정모의 따라하며 배우는 C언어
정밀도
이것 저것 혼자 해보다가 궁금한 점이 생겨서 질문드립니다 만약 문자열의 길이 n 이고 요구하는 정밀도가 n보다 크다면 작동원리는 어떻게 되나요? printf("%.20s", "ABCDEFG"); 를 실행할 경우 "ABCDEFG"만 나오더라구요 이게 만약 숫자였다면 앞에 0으로 채워졌을 것 같은데 문자열이다보니 0으로 채워지는 건 안맞는 것 같고 어떻게 작동하는지 궁금하여 찾아보았는데 해결을 못해서 질문올립니다!
- 해결됨홍정모의 따라하며 배우는 C언어
동적할당 메모리
선생님 char* arr = (char*)malloc(sizeof(char) * 100);에서 sizeof(arr)이 왜 4가 나오나요? 앞서 int예시를 봤을떄는 int* arr = (int*)malloc(sizeof(int) * 100);이라고 했을 때 arr의 사이즈는 주솟값을 저장하는 공간의 크기이고 4가 나왔을때 아 그냥 int 자료형 크기가 4라 주솟값 한칸은 4 사이즈구나...싶었는데 이게 char 자료형이 되니 1 값이 나올것이라고 생각했나봐요 주솟값을 적는 칸의 메모리는 4인것이 고정인가요? 디버깅을 통해 실제로 변수 하나를 만들어서 &붙여서 값을 확인해보니 16진수의 특정 수가 나오던데 이 수가 4byte로 표현된다고 이해하면 되나요?!
- 미해결홍정모의 따라하며 배우는 C언어
강의 11:23의 화면에서 보이는 내용 질문
앞의 내용에서 밑의 두 줄이 같은 코드라고 하셨는데 int sum2d_2(int ar[][COLS], int row); int sum2d_2(int (*ar)[COLS], int row); 그렇다면 밑의 두 줄의 코드에서 같은 의미가 되려면 두번째 줄의 코드가 int my_function(int ar[][3][5][8], int rows); int my_function(int (*ar)[][3][5][8], int rows); 가 아닌 int my_function(int (*ar)[3][5][8], int rows); 와 같이 되어야하는 것 아닌가요?
- 미해결홍정모의 따라하며 배우는 C언어
실수형의 최댓값과 최솟값
안녕하세요 선생님 float.h 에서 FLT_MIN과 FLT_MAX를 출력해봤는데요 둘 다 %e는 잘 표현이 되었지만 %f는 FLT_MIN의 경우에는 표현이 되지 않았습니다.(0으로 떴네요) %e가 %f보다 더 넓은 범위를 표현할 수 있다고 이해했기에 자연스러운 현상이라고 생각했는데 왜 FLT_MAX는 잘 뜨는데 FLT_MIN만 표현이 안되는지는 궁금합니다. MIN 값을 표현하는데에 있어서 메모리가 더 요구된다고 생각하면 되나요??
- 미해결홍정모의 따라하며 배우는 C언어
재질문
안녕하세요 며칠 전 아래의 에러로 질문 드리고 답변받았었는데 해당 에러가 왜 발생한 건지 알 수 있을까요? 단순히 제가 뭘 잘못 건드려서 그런걸까요? some unicode characters in this file could not be saved in the current codepage. Do you want to resave this file as Unicode in order to maintain you data?
- 미해결홍정모의 따라하며 배우는 C언어
11.8 선택정렬 코드
선택 정렬 함수에서 if문에 if(strcmp(arr[min_idx],arr[j])>0) min_idx=j; 대신 if(strcmp(arr[min_idx],arr[j])==1) min_idx=j; 으로 써도 똑같이 실행될거라 생각하고 아래와 같이 작성했는데 결과값이 다른 이유가 뭔가요? (strcmp에서 왼쪽값이 더 크면 1을 반환하는 것으로 알고 있습니다)
- 미해결홍정모의 따라하며 배우는 C언어
/ 이거 말고 왼쪽위에서 아래로 내려오는 모양 어딨어요?
키보드에서 안보인뒝 `이거 닯았는데 좀 길게 생김;;
- 미해결홍정모의 따라하며 배우는 C언어
파일 입출력 런타임에러
수업시간과 똩같이 파일을 읽어오는 코드를 따라했는데, 계속 런타임에러가 뜨는데 이런경우는 왜이런것이고, 어떻게 해결해야 하나요???
- 해결됨홍정모의 따라하며 배우는 C언어
char 과 unsigned char
공부를 해보니 char 또한 unsigned가 있더라구요! 저 두가지가 구분되어 있는 이유는 뭔가요?? char이든 unsinged char 이든 어쨌든 아스키코드를 바탕으로 할텐데 둘다 8비트라 256가지 범위를 가지므로 아스키코드의 숫자는 두 자료형 모두 커버하더라구요! 그런데 굳이 저렇게 둘이 분리되어있는 이유는 뭔가요? 따로 계산할떄 나중에 필요한가요?!
- 미해결홍정모의 따라하며 배우는 C언어
11.7 선택정렬함수
void selectionsort(int arr[],int n) { int i,j,min_idx; min_idx=0; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(arr[min_idx]>arr[j]) { min_idx=j; } swap(&arr[i],&arr[min_idx]); } } } 첫번째 for문 밑에 min_idx=i를 안쓰고 위에 처럼 코드를 써도 똑같이 출력될줄 알았는데 아니네요..(제 의도는 시작할 때 첫번째 원소를 최솟값이다! 라고 정해놓고 하려했습니다.) 이유를 잘 모르겠습니다..(혹시 변수 min_idx의 범위 때문인가요?)
- 미해결홍정모의 따라하며 배우는 C언어
포맷팅 의미
강의 8:45 부분에 나오는 포맷팅의 의미가 무엇인가요?
- 미해결홍정모의 따라하며 배우는 C언어
실행문제
아래의 코드가 강의를 들을 땐 잘 실행됐는데 나중에 제가 뭘 잘못 건드린건지 저 코드가 실행이 되지 않습니다. 에러창에는 15번째 줄에 stntax error: '?' 이 있다고 하는데 15번째 줄은 아무 이상이 없어 보입니다. 가운데 흰색창은 구글링해도 뭘 말하는건지 잘 모르겠는데 no를 클릭하니까 없어졌습니다. 코드가 실행되지 않는데 어떻게 해야 할까요? visual studio를 재실행하고 파일도 다시 만들었는데도 계속 저 문구가 나옵니다!