월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨홍정모의 따라하며 배우는 C언어
scanf 함수의 시간측정
교수님의 강의에서 status = scanf("%d", &num); while (status == 1) { sum += num; printf("Enter a next integer (q to quit): "); status = scanf("%d", &num); } 이런식으로 된것을 판단식에 scanf 를 넣어서 코드를 간결하게 줄였는데, 이 경우 더 효율적으로 돌아 갈 것 같아서 #include <time.h> 를 통해서 시간측정을 해보려고 하니 scanf 함수를 받을때 제가 값을 입력하는데 걸리는 시간이 매번다르니 측정이 불가능 하였습니다. 방법이 있을 까요?
- 미해결홍정모의 따라하며 배우는 C언어
구조체 포인터 선언의 기억공간 할당 여부
구조체 설계 struct guy { char favfood[10], char job[10] }; 일 때는 기억공간을 아직 할당받지 않은 상태이고 구조체 변수 선언 혹은 선언 동시 초기화 할 때 메모리에 공간을 할당받는다고 이해했습니다. struct guy barney; 이 때 기억공간을 할당받는다 포인터는 새로운 구조체를 생성하지 않고 기존의 동일 구조체를 가리킨다고 하셨는데, 구조체 포인터 변수는 구조체 포인터 변수 선언 시 메모리에 공간을 할당 받나요? struct person* someone; [정리]구조체 포인터 변수의 메모리 할당 시점이 궁금합니다.
- 미해결홍정모의 따라하며 배우는 C언어
1.8 C언어와 함수 강의의 14:15 16:50 부분 질문있습니다.
안녕하세요. 강의 유익하게 잘 보고있습니다. 14:15, 16:50 부분 관련 질문있습니다. 14:15의 설명에서 return 뒤에 쓰이는 숫자가 exited with code 뒤에 출력으로 오는 것을 알 수 있고 16:50의 설명에서 int 와 7이 관련이 있다 하셔서 개인적으로 실험을 하나 해봤습니다. 강의의 코드를 float main() { return 7.7777; } 로 바꾸어서 실행하면 7.7777이 나올 것으로 생각했는데 실제 출력되는 숫자는 다른 숫자가 나옵니다. 혹시 return 함수가 실수형은 받지 않아서 이런 현상이 나타나는 건가요?
- 미해결홍정모의 따라하며 배우는 C언어
object
data ovject를 설명하시는데 i = 1024;에서 i를 object라고 하셨는데, i = i + 1;에서 R-value로 사용되는 i 도 object 인지 여쭙니다.
- 미해결홍정모의 따라하며 배우는 C언어
불리언형
bool과 _Bool은 같은건가요?
- 해결됨홍정모의 따라하며 배우는 C언어
예시 3번 질문입니다!
안녕하세요! 예시 3번을 혼자 풀다가 l value와 r value가 헷갈려서 질문드려요. 아래가 제 코드인데요 5.2강에 나왔던 l value와 r value 개념을 이해했다고 생각했는데 막상 여기서는 저게(아래 코드에서 제가 주석 처리해둔 부분이요) 왜 l value인지 잘 모르겠습니다.. 강의의 교수님 코드처럼 int 변수를 하나 선언해서 first_char + i 값을 대입해준다음 그 변수 값을 변경하는 것은 가능한데 그것과 제 코드의 차이를 알듯 하면서도 잘 모르겠어서 혹시 좀 명쾌하게 설명해주실 수 있나요?! 감사합니다. first_char와 i 각각이 r value인건 맞으니까 'x*y에서 x와 y각각은 r value이지만 x*y값 자체는 l value이다.'라고 설명해주셨던 부분과 비슷한거같긴한데 말이죠.. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { char first_char, last_char; char tmp; int repeat; printf("원하는 첫 알파벳 대문자를 입력하세요: "); scanf("%c", &first_char); getchar(); printf("원하는 마지막 알파벳 대문자를 입력하세요: "); scanf("%c", &last_char); tmp = first_char; repeat = last_char - first_char + 1; //문자 반복 for (int i = 0; i < repeat; i++) { while (first_char + i < last_char) { printf("%c", first_char + i); first_char + i = (first_char + i) + 1; // 이게 안되는이유: lvalue라서 // 이게 lvalue인 이유는...?: } first_char = tmp; printf("\n"); } return 0; }
- 미해결홍정모의 따라하며 배우는 C언어
int_fast8_t f8 의미
다른 시스템에서 다른 바이트를 쓸 수 있으니 이식성을 위해 고정하자는 의미로 #include <stdint> 라이브러리 포함시켜서 int_fast8_t f8; 를 선언했는데 이 표현이 a라는 변수를 8비트 중 가장 빠른 것으로 고정시키겠단 뜻이라 설명하셨는데 뭐 다른 int_32t 와 같은 건 다른 시스템에서도 32비트로 쓰이게 한다는 것과 적어도 16비트를 쓰겠다는 선언 등은 이해가 가는데 8비트 중 가장 빠른 것을 고정시키겠단 것은 이해가 잘 안됩니다 ㅜㅜ
- 미해결홍정모의 따라하며 배우는 C언어
군대에서 visual studio
군대에서 토익 혹은 c언어 공부하려고 마음 먹고 있었는데, c언어를 공부하기로 결정했습니다. 연등을 신청해서 하루에 1~2시간 정도 사이버지식정보방에서 컴퓨터를 이용하여 인강을 듣고, 프로그래밍 연습을 합니다. 그런데 visual studio를 다운 받고 istaller도 하고 하면 컴퓨터를 재시작해야 합니다. 근데 군대 컴퓨터는 재시작 하면 저장파일이 다 사라져서 문제입니다. d드라이브에 넣어서 쓰자니 문제가 생길것 같아서 그렇게는 못하겠습니다. 그래서 구름ide 라는 웹,클라우드 기반 매체를 이용해서 공부하려고 하는데 괜찮을지 궁금합니다.
- 해결됨홍정모의 따라하며 배우는 C언어
코드가 텍스트 파일을 받아오지 못합니다.
#include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { int ch; FILE* fr; unsigned long count = 0; if (argc != 2) { printf("Usage : %s filename\n", argv[0]); exit(EXIT_FAILURE); } if ((fr = fopen(argv[1], "r")) == NULL); { printf("Can't open %s\n", argv[1]); exit(EXIT_FAILURE); } while ((ch = fgetc(fr)) != EOF) { fputc(ch, stdout); count++; } fclose(fr); printf("FILE %s has %lu characters\n", argv[1], count); return 0; } 보시는 바와 같이 코드를 강의코드와 똑같이 작성하고 소스코드와 같은 위치에 txt파일을 만들고(내용도 강의와 똑같습니다) 명령줄 인수도 올바르게 넣었는데 작동이 안됩니다. 실행시 Can't open my_input.txt 라 출력되는것을 보면 인수는 잘 들어갔는데 텍스트파일을 찾지 못하고 있습니다. 도대체 어떤 이유에서인지 알고 싶습니다. 부탁드립니다.
- 미해결홍정모의 따라하며 배우는 C언어
3:07 cmd 창 explorer .
커맨드창에 explorer . 를 치면 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 이렇게 떠서 경로들을 환경변수 Path에 다 입력하고도 했는데 명령어가 실행이 안되는 이유는 뭘까요 ..ㅜㅜ
- 해결됨홍정모의 따라하며 배우는 C언어
visual studio x64, x 86
x64와 x 86의 차이가 무었인가요?
- 미해결홍정모의 따라하며 배우는 C언어
컴파일되는 파일
사소한 질문이지만... lecture15.c를 실행하고 싶은데 계속 lecture11.c가 실행되는 이유는 무엇때문일까요?
- 미해결홍정모의 따라하며 배우는 C언어
define 과 변수 의 차이
기호적 상수와 전처리기 파트에서 PI를 define 하는데 float PI = 3.141592; 와 차이가 무엇인가요?
- 해결됨홍정모의 따라하며 배우는 C언어
13:25 stack frame에 대해서 질문 있습니다.
교수님께서 stack frame이라고 하면은 보통 함수 전체 예를 들면 main() 전체에 필요한 메모리를 의미한다고 하셨는데 이 때 함수 전체에 필요한 메모리가 교수님이 바로 뒤에서 설명하신 stack이 push됐다 pop됐다 하는 stack 자료구조에서 사용되는 stack 메모리에 한정되는 메모리를 의미하셨는지 알고 싶습니다.
- 해결됨홍정모의 따라하며 배우는 C언어
3:20 getchar()
왜 갑자기 getchar() 이 나오는 건지 모르겠어요. getchar가 아니라 scanf로 입력받았던 건데 왜 갑자기 getchar가 나오나요?
- 해결됨홍정모의 따라하며 배우는 C언어
if (!isspace(c) && !ine_flag) 질문 있습니다!
bool line_flag = false; 라고 초기화했잖아요, 그래서 맨 첫번째 줄바꿈이 일어나기 전에 입력할 때는 첫번째, 두번째 if문의 조건이 다 성립하니까 n_chars++도 실행되고 n_lines++도 실행될 거라 생각했는데 왜 실제로는 첫번째 if문만 성립해서 n_chars++만 실행되는 건가요?
- 미해결홍정모의 따라하며 배우는 C언어
(x!=0) 과 !(x=0)
안녕하세요. 관련내용으로 추가학습을 하다가 질문드립니다. and(&&)의 의미상 , x가 0도 아니고 1도 아니어야 T를 의미하는 식 은 아래와 같다고 알고 있습니다. (x!=0)&&(x!=1) <=> !(x==0)&&!(x==1) 즉 , (x!=0) 과 !(x==0) 이 두가지 식은 같은거고 , 두가지 식 모두 , 각각의 식의 의미대로 x=0이면 F, x 가 0이 아니면 T 의 값을 가지는 논리값을 따질 수 있는 개체(피연산자) 로서 다루어지는건가요? 당연해 보이기는 한데 , 보통 , 3>2 , x==0 , y==2 이렇게 부정표현이 없는것들이 논리식에서 피연산자로 다루어지다 보니 살짝 헷갈려서 질문드립니다!!
- 미해결홍정모의 따라하며 배우는 C언어
4294967295 to binary (변환하는 방법이 궁금합니다.)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 십진수 4294967295 를 이진수인 11111111111111111111111111111111로 출력해보려고 여러 가지 알아보고 했습니다. 어려운 코드가 많이 나오고 아직 이해하기는 어려웠던 것 같습니다. 실제로 제대로 출력도 못한 것 같고요! 지금 단계에서 이해는 되지 않더라도 어떤 함수를 사용해야 하는 지 알고 싶은데 혹시 괜찮으시다면 알려주실 수 있으실까요!
- 미해결홍정모의 따라하며 배우는 C언어
교재관련하여 질문드립니다!!!
책을 구매하려고 하는데 강의에서 주로 사용하는 주교재가 'C Primer Plus 6판'을 사용하는 것이 맞는지 궁금합니다!!
- 해결됨홍정모의 따라하며 배우는 C언어
readbooks, readbook2 함수 구현
struct book* read_books(const char* filename, int* n) { FILE* fp = fopen(filename, "r"); if (fp == NULL) { fputs("Can't open file.", stderr); exit(1); } //struct book* book = (struct book*)malloc(sizeof(struct book) * *n); int flag; flag = fscanf(fp, "%d%*c", n); if (flag != 1) { printf("File read failed"); exit(1); } struct book* book = (struct book*)malloc(sizeof(struct book)* *n); if (!book) { printf("Malloc() failed."); exit(1); } for (int i = 0; i < *n; i++) { fscanf(fp, "%[^\n]%*c", book[i].name); fscanf(fp, "%[^\n]%*c", book[i].author); /*if (flag != 2) { printf("File read failed"); exit(1); }*/ } fclose(fp); return book; } 안녕하세요! readbook함수 구현에서, malloc으로 구조체 힙 메모리 할당 코드를 주석으로 처리된 위치에 구현하였는데 계속 런타임 에러가 뜨더라구요. 교수님께서는 위와 같은 위치로 구현하였는데 두 위치상 코드의 차이를 모르겠습니다.. void read_book2(const char* filename, struct book** book_dptr, int* n) { FILE* fp = fopen(filename, "r"); if (fp == NULL) { fputs("Can't open file.", stderr); exit(1); } int flag; flag = fscanf(fp, "%d%*c", n); if (flag != 1) { printf("File read failed"); exit(1); } for (int i = 0; i < *n; i++) { fscanf(fp, "%[^\n]%*c", book_dptr[i]->name); fscanf(fp, "%[^\n]%*c", book_dptr[i]->author); } fclose(fp); } readbook2함수 구현에서 struct book의 이중포인터를 파라미터로 가져오는거라 malloc으로 힙메모리를 새로 할당할 필요가 없다고 느껴, 위와같이 구현하였는데 런타임에러가 생기더라구요. 위와 같은 코드에서 런타임 에러가 나는 이유를 못찾겠습니다.