월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨홍정모의 따라하며 배우는 C언어
fgets() 함수 질문
안녕하세요.11-4 강의 듣고 궁금한 점이 있어 질문드립니다. 콘솔창에 문자를 입력할 때 eof 혹은 줄바꿈 말고 4글자를 입력하면 프로그램이 종료되는데, 이는 어떤 원리에서 종료되는 걸까요?
- 해결됨홍정모의 따라하며 배우는 C언어
unsigned가 없는 float에 부호가 0인 이유
16:50을 보면 실수에는 unsigned가 없기 때문에 무조건 부호 비트가 들어간다는 설명이 있습니다. unsigned가 양수를 나타내는 것, signed가 음수를 나타내는 것으로 알고 있습니다. 그렇다면 음수인 1이 부호비트에 들어가야 하는 것 아닌가요?부호비트에 0이 들어가는 건 1. 2의 보수법 표현 때문아니면 unsigned int에 대한 자료형이 없을 뿐 unsigned int에 대해 저런 식으로 표기하기 때문 1,2 중 어떤 case인지, 아님 기타의 case 때문인지 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C언어
버퍼에 대한 궁금증
#include <stdio.h> #include <stdbool.h> #include <ctype.h> int main() { char ch; int characters=0, words=0, lines=0; bool word_flag=false; bool line_flag=false; printf("Enter text: \n"); while( (ch=getchar())!='.'){ if(isspace(ch)==false)//공백이 아닐경우 characters++; if(isspace(ch)==false && line_flag==false){ lines++; line_flag=true; } if(ch=='\n') line_flag=false; if(isspace(ch)==false && word_flag==false){ words++; word_flag=true; } if(isspace(ch)==true) word_flag=false; } printf("characters:%d words: %d lines: %d",characters,words,lines); return 0; }위 코드에서 버퍼에 '.'(따옴표)까지 저장이 되는지 그전 문자까지만 저장이 되는지 궁금합니다.
- 해결됨홍정모의 따라하며 배우는 C언어
6.11강 4:36 부분에서 질문이 있습니다.
안녕하세요수업 중에 4:36 부분에서 궁금한 내용이 있어서 질문드립니다. 위키피디아에서컴마 연산자를첫 번째 피연산자를 평가한 후 그 결과를 버린 다음,두 번째 피연산자를 평가하고 그 결과를 반환하는 이항 연산자라고 정의하는 것을 확인했습니다.https://en.wikipedia.org/wiki/Comma_operator int i, j; i = 1; printf("%d", (i++, j = 3)); // 결과 : 3그럼 위 코드에서 반환하는 결과값은(i++, j = 3)의 결과값은 변수 j인가요 아니면 상수 리터럴 3인가요...???
- 미해결홍정모의 따라하며 배우는 C언어
알고리즘에서 경쟁력을 찾으라고 하셨는데
이는 알고리즘을 알맞게 사용하는 것을 말씀하시는 건가요? 아니면 프로그램 주제에 맞는 알맞은 알고리즘을 개발하는것을 말씀하시는건가요?
- 미해결홍정모의 따라하며 배우는 C언어
고정너비 정수
안녕하세요 수업을 듣다가 의문점이 생겨 글을 올립니다. 제가 이해한 바로는 고정너비 정수를 이용하는 이유가 C언어 표준에서는 자료형마다 최소 기준만을 설정해놓았기 때문에, 만약 시스템(컴파일러 등등)이 달라진다면 int 나 char와 같은 자료형이 차지하는 메모리도 달라질 수 있기 때문에, 이식성을 높이기 위해서int32_t와 같은 자료형을 사용한다는 것입니다.하지만 stdint.h를 보면 typedef int int32_t; 처럼 int의 별칭을 int32_t로 정하고 있습니다. 이러한 상황에서는 int를 32bit로 사용하는 시스템에서는 int32_t가 32bit를 사용하겠지만, 만약에 int를 64bit로 사용하는 시스템이 있다고 가정을 한다면(C 표준은 bit의 최소기준만 설정해놓았기 때문), int32_t는 int의 별칭(alias)이기 때문에 결국은 int32_t도 64bit를 사용하는 것 아닌가요? 이렇게 된다면 int32_t는 더 이상 고정되어있지 않고 시스템이 바뀔 때마다 달라지는 것 아닌가요? 궁금합니다..
- 미해결홍정모의 따라하며 배우는 C언어
fgets() 함수에 관한 질문
int main() { char* buffer=NULL; fgets(buffer, 10, stdin); printf("%s", buffer); return 0; }int main() { char buffer[10]; fgets(buffer, 10, stdin); printf("%s", buffer); return 0; }밑에 코드는 출력까지 문제 없이 되는데위에 코드는 출력이 되지 않습니다. 왜 이런 현상이 발생하는지 알고 싶습니다.
- 해결됨홍정모의 따라하며 배우는 C언어
한 번에 여러 개의 값을 입력했을 때에 관해 질문이 있습니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { // TO DO : q가 입력될 때까지의 입력받은 모든 정수 합 출력 // 1. 준비 int input = 0; // 입력을 저장할 변수 int sum = 0; // 합계를 저장할 변수 int status = 0; // scanf의 반환값(입력값의 갯수)을 저장할 변수 // 2. 입력 printf("Enter an integer (q to quit) : "); status = scanf("%d", &input); // scanf()의 동작 // 입력받은 값이 형식 지정자의 형식과 일치할 경우 입력으로 취급하여 입력값의 갯수 반환 // 입력받은 값이 형식 지정자의 형식과 일치하지 않을 경우 입력으로 취급하지 않으며 0을 반환 // * 성공적으로 스캔된 입력의 갯수 확인용 printf("%d\n", status); // 3. 반복 while (status == 1) { // scanf()의 반환값이 1일 때만 반복 // 현재 루프에 대한 처리 sum = sum + input; // 다음 루프 printf("Enter next integer (q to quit) : "); status = scanf("%d", &input); } // 4. 출력 printf("SUM = %d\n", sum); }; 1 2를 입력하니 "Enter next integer (q to quit) : " 문장이 2개 출력되었지만1 2를 모두 입력으로 인식했는지바로 sum을 출력했을 때 3이 출력됬습니다. 다음으로 1 2 3 4 5를 입력하니"Enter next integer (q to quit) : " 문장이 5개 출력되었지만 sum을 출력해보니 10이 출력됬습니다. 저는 scanf의 형식 지정자와 값을 저장할 변수를 하나만 지정했는데 왜 5개 입력에 대해서 5번 루프를 실행하고 sum의 값이 정상적으로 출력되었는지 잘 이해가 안되서 질문 드립니다.. 그리고 scanf()는 입력한 값의 형식이 형식 지정자의 형식과 일치할 경우 스캔에 성공한 입력의 갯수를 반환한다고 배웠는데중간에 scanf의 반환값을 printf()해서 성공적으로 스캔된 입력의 갯수를 확인해 봤을 때 형식에 맞는 변수를 여러 개 입력해도 1이 출력되던데 이유가 뭘까요,,??
- 해결됨홍정모의 따라하며 배우는 C언어
2:26 부분 관련해서 질문드립니다
double을 float로 변환할 때 float의 가수부가 저장할 수 있는 23비트를 초과하면 23비트까지 저장하고 초과한 부분은 모두 절삭된다고 하는데 맞는건가요?? 절삭이 되면 항상 값이 줄어야 하는데 아래 코드로 해보니 결과가 좀 다르게 나와서요..#include <stdio.h> int main() { double d1 = 3.1415928; float f1 = d1; printf("%.7f\n", d1); printf("%.7f\n", f1); double d2 = 3.1415929; float f2 = d2; printf("%.7f\n", d2); printf(".7f\n", f2); }; double형 3.1415928를 float로 변환하면 3.1415927로 값이 줄어서 나오는데double형 3.1415928를 float로 변환하면 3.1415930으로 값이 증가해서 나옵니다..왜 이렇게 나오는지 알 수 있을까요?? 3.1415928≈11.00100100001111110110101010000010이며 이 중 가수부로 저장되는 비트는 00100100001111110110101이고 나머지 010000010는 버려진다는 것과3.1415929≈11.00100100001111110110101010000011이며 이 중 가수부로 저장되는 비트는 00100100001111110110101이고 나머지 010000011는 버려진다는 것인데버려지는 비트를 제외하고 저장되는 값은 11.00100100001111110110101로 똑같은데 왜 변환된 값은 3.1415927과 3.1415930인지 잘 모르겠습니다.
- 해결됨홍정모의 따라하며 배우는 C언어
질문이 있습니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { // 복리 계산 프로그램 double seed_money, target_money, annual_interest; printf("Input seed money : "); scanf("%lf", &seed_money); printf("Input target money : "); scanf("%lf", &target_money); printf("Input annual interest(%) : "); scanf("%lf", &annual_interest); double fund = seed_money; int year_count = 0; while (fund < target_money) { year_count++; fund = fund * ( 1.0 + ( annual_interest % 100.0 ) ); }; printf("It takes %d year\n", year_count); return 0; } 제가 작성한 코드에는 annual_interest과 100.0 아래 빨간줄이 나오면서 expression must have integral type이라고 출력되는데 왜이럴까요..??
- 미해결홍정모의 따라하며 배우는 C언어
공백이 왜 생기는지 모르겠어요
8.5 숫자이 모든 문자를 섞어서 입력받기 강의에서공백이 왜 생기는거에요?
- 미해결홍정모의 따라하며 배우는 C언어
while(getchar() != '\n') continue; 이부분 질문이요
3분 20초 쯤에 while(getchar() != '\n') continue;이걸 사용하면 빈칸 공백 없애주는거라고 하셧는데이게 왜 빈칸 공백 없애 주는건지 모르겟어요엔터키누르는게 아니면 continue로 뒤에꺼 실행안되게 하는 함수라고 생각하는데빈칸 없애는거랑 무슨 관련이 있나요?
- 미해결홍정모의 따라하며 배우는 C언어
int*
int* ptr 이거랑 int *ptr 이거랑 다른건가요? 다르다면 어떻게 다른건지 알려주세요 너무 헷갈리네요..
- 미해결홍정모의 따라하며 배우는 C언어
*
9.15 10:28 질문입니다 파란색 바탕 밑줄 표시된 위아래 if절에서요 아래 if절이 왜 있는건가요? 그리고 위아래 if절이 무슨 차이인지 헷갈려요
- 미해결홍정모의 따라하며 배우는 C언어
헤더파일
9.11 3:48 질문입니다 저는 새항목 추가하면 오른쪽처럼 뜨거든요 무슨 문제가 있는걸까요..?
- 미해결홍정모의 따라하며 배우는 C언어
exit
8.9 강의 8:24 질문입니다exit(1)에서요 ()에다가 왜 1을 써야되나요?
- 미해결홍정모의 따라하며 배우는 C언어
EOF
EOF을 쓰는 이유가 입력이 다 끝났음을 알리기 위해서라면 scanf같이 입력을 받는 함수가 쓰일때마다 EOF도 있어야 된다고 생각하는데요 꼭 다 EOF가 있는건 아니더라구요 코드 작성시 EOF를 언제 써야되는지 잘 모르겠습니다.
- 미해결홍정모의 따라하며 배우는 C언어
void
8.8 강의 2:55 질문입니다 5~8라인에서 왜 ()안에 void를 쓰는건지 궁금합니다
- 미해결홍정모의 따라하며 배우는 C언어
void display
8.5 강의 0:17 질문입니다 왜 void display를 쓴건가요?
- 미해결홍정모의 따라하며 배우는 C언어
break
7.10 루프 도우미 질문입니다 사진에서 실행시 0 1 2 3 4 5 가 아니라 왜 4까지 출력되는건지 이해가 안됩니다++i면 i=4일때 5도 출력되어야 하는거 아닌가요? i=5일때 break을 만나서 루프에서 나간다면 6은 출력하면 안되고 5까지만 출력되어야 한다고 생각했거든요