월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨홍정모의 따라하며 배우는 C언어
실수 입력시 어째서 이런 결과가 나오는 것인지 모르겠습니다.
#include <stdio.h> int main() { char c; int sum = 0; int n = 0; int status = 1; while (status == 1) { printf("Enter an integer(q to quit) : "); status = scanf("%d", &(int)n); if (status != 1) { scanf("%c", &c); if (c == 'q') break; printf("Worng enter\n"); status = 1; continue; } sum += n; } printf("Sum = %d\n", sum); return 0; } 제가 이 코드를 작성하여 'q'입력시에만 루프를 취소하고 다른 문자에 경우는 루프를 계속 실행하게 만드는것은 성공하였습니다. 하지만 정수나 문자가 아닌 실수를 입력하였을때 도무지 이해가 가지않는 현상이 발생하였습니다. 디버그를 했을때 status값은 1 그대로이고 혹시나 하여 scanf의 대입변수에 (int)까지 붙었음에도 이런결과가 나오는 이유를 모르겠습니다. 답변 부탁드립니다.
- 미해결홍정모의 따라하며 배우는 C언어
교수님! illegal digit '8' for base '8'라고 에러가 발생합니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int won = 0; int dollar = 0; printf("Input won\n"); scanf("%d", &won); dollar = won * 0,00089; printf("Dollar = %d\n", dollar); return 0; } 교수님 안녕하세요. 위와 같이 하고 디버깅을 하면 error C2041: illegal digit '8' for base '8' 이라고 에러가 발생합니다. 물론 콘솔창도 뜨지 않습니다. 도움을 부탁드립니다 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
scanf값이 잘 안받아집니다
메뉴 입력 예제에서 처음엔 scanf가 잘 받아지는데 스위치 문을 나가고 다시 메뉴가 보이고 scanf로 다른 글자를 받아야되는데 그게 한번 건너뛰어지고 다시 menu함수가 실행되서 Enter the letter of your choice 글자가 두번 중복되는 문제가 생깁니다. 디버그 해도 원인을 모르겠는데 왜 그런걸까요?..ㅠㅠ #include <stdio.h> char input; int num; void menu() { printf("Enter the letter of your choice: \n"); printf("a. avengers\t b. beep\n"); printf("c. count\t q. quit\n"); scanf("%c", &input); switch (input) { case 'a': printf("Avengers assemble!\n"); break; case 'b': printf("\a"); break; case 'c': scanf("%d", &num); for (int i = 1; i <=num; i++) { printf("%d\n", i); } break; default: break; } } int main() { do { menu(); } while (input != 'q'); return 0; }
- 미해결홍정모의 따라하며 배우는 C언어
while문 작성시 Scanf
#include<stdio.h> int main() { const int secret_code = 337; int guess = 0; printf("Enter secret code : "); while (scanf("%d", &guess) != secret_code) { printf("Enter secret code : "); } printf("Good!"); return 0; } 전의 배운내용을 생각해서 while조건문 안에 scanf함수를 사용해보았는데 작동이 정상적으로 되질 않아요. 왜 그런건가요?
- 미해결홍정모의 따라하며 배우는 C언어
손으로 입력하기에는 버거운 상수 배열을 정의하는 방법이 있을까요?
공부를 하다보니까 python의 딕셔너리 같은 기능을 구현 하려고 시도했습니다. 상수 배열 2개를 정의 하려고 하는데 1개는 배열의 원소들이 규칙이 있어서 루프문을 통해 정의하려고 시도했지만.. 상수 배열의 원소는 변경이 안되서 잘 안되더라구요. 그래서 임시로 배열을 만들어서 루프문을 통해 배열을 만들고 나서 상수배열을 정의할때 임시배열의 이름을 가지고 할당하려고 했습니다. 그러나 이것도 컴파일자체가 안되더라구요.. 어떤 방법이 있을까요? 만들려고 시도했던 프로그램은 콘솔창에 스트링을 입력하면 그 스트링을 모스부호로 바꿔서 콘솔창에 출력해주는 것이였습니다.
- 미해결홍정모의 따라하며 배우는 C언어
6.17 강의 예제를 따라하던 중 알 수 없는 오류가 생겨 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의 는 1:1 문의하기를 이용해주세요. 저 혼자 나름대로 코딩 할 때도 size 대신 5를 입력하는 거 말고는 딱히 선생님의 코드랑 다른 것이 없었는데, 저런 오류가 뜨더라구요. 구글링도 해보고 하다가 안 되겠다 싶어서 그냥 선생님 코드랑 똑같이 작성했는데 그래도 저런 오류가 지속되고 있습니다. 이 오류가 왜 뜨는 건지 어떻게 해결할 수 있는 건지 알려주세요 ㅠㅠ.
- 미해결홍정모의 따라하며 배우는 C언어
2차원 배열
안녕하세요, 질문드립니다. 앞강의에서도 계속해서 다루었던 부분인데 이해가 안되서 질문드립니다. int arr[2][3] = {{1,2,3}, {4,5,6}} 에서 arr == arr[0]인 것은 둘다 모두 arr배열의 첫주소를 가르킨다는 점에서 타당하다고 생각합니다. 이해가 안되는 부분은 arr[0]와 &arr[0]가 같다는 점인데요. arr[0]가 위 배열의 1행을 의미하는 것이므로 {1,2,3}의 주소를 가르킵니다. 하지만 여기서 다시 주소연산자를 붙이는 것이 이해가 되지않습니다. arr[0] 자체로 첫번째 주소를 가르키고 있는데 여기서 다시 주소연산자를 붙인 결과가 같다는 것이 이해가 되지 않습니다. 긴글 읽어주셔서 감사합니다.
- 미해결홍정모의 따라하며 배우는 C언어
사용자 지정 함수 변수 설정
사용자 지정 함수를 만들 때 입력하는 변수의 개수를 고정하지 않을 수도 있나요? 이번 강의에 나왔던 print_multiple_chars() 를 예로 들면 (char c, int n_stars, bool print_newline) 이 중에서 마지막 변수 bool print_newline 란에 true or false 를 입력하면 그에 맞는 출력이, 아무것도 입력하지 않으면 자연스레 false로 인식하도록 함수를 구성할 수도 있는 건가요?
- 해결됨홍정모의 따라하며 배우는 C언어
따배씨 스터디 많은 관심 부탁드립니다 ㅎ
스터디 란에 글 올렸습니다 관심 있으신분들 참여 부탁드려요 ㅎ
- 미해결홍정모의 따라하며 배우는 C언어
for문을 while문으로 변환했는데 실패함.
void display(char cr, int lines, int width) { int row, col; row = 1; col = 1; while (1) { if (row > lines) break; while (1) { if (col > width) break; printf("%c", cr); col++; } printf("\n"); row++; } } // //void display(char cr, int lines, int width) //{ // int row, col; // // for (row = 1; row <= lines; row++) // { // for (col = 1; col <= width; col++) // putchar(cr); // printf("c", cr); 과 동일한 기능을 한다. // putchar('\n'); // printf("\n"); 와 동일한 기능을 한다. // } //} 아래 for문을 위의 while문으로 바꿨는데 정상 작동 안합니다. while은 일부러 무한 루프로 잡았구요 제가 조건식을 넣고 싶어서 그랬습니다. A 5 5같이 입력해도 첫줄만 정상 출력되고 여백이 생기네요. 어디가 문제인거죠?
- 미해결홍정모의 따라하며 배우는 C언어
ANSI UTF-8 질문
위의 예제에서 SetConsoleOutputCP(CP_UTF) 함수를 사용하여 UTF-8 모드로 출력하라고 설정했잖아요. 궁금한게, 읽을 텍스트 파일이 UTF-8 모드로 저장되어있다면 위 함수를 사용해주어야 한글이 안깨지고 텍스트 파일이 ANSI로 저장되어있었다면 위 함수를 사용하면 한글이 깨져서 나오고 사용하지 않으면 한글이 정상적으로 나오는데 왜 이런건지 이유를 알고싶습니다 콘솔의 기본출력모드가 ANSI로 되어있어서 그런건가요? 그리고 또 궁금한게 왜 ANSI 방식으로도 한글을 출력할수가 있는건가요?
- 미해결홍정모의 따라하며 배우는 C언어
scanf로 문제 계속 받고 나오는 방법
int main() { const char first_char = 'A'; // const char last_char = 'T'; // TOOD: use scanf() / 즉 last_char(마지막글자)를 scanf로 입력받아서 쓸 수 있게 만들어봐 // const int num_rows = last_char - first_char + 1; int r; // num_rows loop int c; // character loop char last_char = 'C'; for (last_char; last_char != 'q'; scanf("%c", &last_char)) { printf("Input last_char (quit to q) : "); scanf("%c", &last_char); const int num_rows = last_char - first_char + 1; for (r = 0; r < num_rows; ++r) { for (c = first_char; c <= first_char + r; ++c) // { printf("%c ", c); } printf("\n"); } for (r = 0; r < num_rows; ++r) { for (c = first_char + r; c != first_char + num_rows; ++c) { printf("%c ", c); } printf("\n"); } printf("num_rows : %d, r : %d, first_char : %c, last_char : %c, c : %c\n", num_rows, r, first_char, last_char, c); printf("\n"); } 입력 받는건 아주 잘 받는데 q 입력했을 때 바로 안나오고 엄청난 이상한 출력 길게 나오고 끝나네요.. 뭐가 문젠가요? 출력은 예제2번에 예제3번 합쳐서 나오고 끝나는 출력입니다. ex) A AB ABC BC C
- 미해결홍정모의 따라하며 배우는 C언어
fread fwrite 질문
다름이 아니라, 위에 코드에서 보다시피 fflush() 아니면 rewind() 함수를 넣지 않고 실행시 위와 같은 결과가 나오는데요. 명확하게 어떤 이유에서인지 알지 못하겠습니다.
- 미해결홍정모의 따라하며 배우는 C언어
comma 연산자
int money = (123, 456); 에서 money가 456이 되는 걸 잘 이해 했습니다. 그냥 호기심일 뿐인데 수학 그래프를 나타낼때 (x, y)중 y를 나타내는 방식이랑 되게 유사하여 혹시 저 표현식에서 123은 일시적인 값이라 사라지는건가요? 아니면 money에 귀속이 되어 다른 명령어로 불러드릴 수 있는건 가요?
- 미해결홍정모의 따라하며 배우는 C언어
signed char에 최고 FF가 홀드 되어야 하는데 왜 FFFF가 표시 되는지 궁금합니다
4.10절 21라인 강의를 듣다가 아래와 같은 시험을 하였습니다. - 변수 j는 signed char로서 1바이트에 – 128 ~ 127까지를 저장(hold)할 수 있다. - scanf() 로 -1을 읽어 들이면 마이너스는 2의 보수로 표현하므로 j에 FF가 입력되어야 한다. 그런데 첫번째 printf를 보시면 왜 FFFF가 표시 되는지 모르겠습니다. 2번,3번째 printf는 형식지정자에 맞게 출력 된 것 같기도 합니만, j변수에는 분명 FF가 저장되어 있을 텐데 이해가 가지 않습니다. 그 이후 printf도 마찬가지입니다
- 미해결홍정모의 따라하며 배우는 C언어
7.8 단어 세기 예제 질문입니다
코드는 #include <stdio.h> int main() { int lines = 0; int words = 0; int chars = 0; char arr[30]; printf("Enter Text : \n"); for (int i = 0; i <= arr; ++i) { scanf_s("%s", &arr[i],sizeof(arr[i])); chars++; if (arr == '.') ++lines; else if (arr == ' ') ++words; } printf("characters: %d words: %d lines: %d", chars, words, lines); } 이렇게 작성해 봤는데 '<=': 'int' differs in levels of indirection from 'char [30]' '==': 'char [30]' differs in levels of indirection from 'int' '==': 'char [30]' differs in levels of indirection from 'int' 이 세개의 문구의 warning이 뜨는데 프로그램이 입력만받고 결과가 출력이 안됩니다.. int i를 char로도 바꿔봤는데 똑같은 warning이 뜨던데 이 코드에서 어떻게 수정해야할까요?
- 미해결홍정모의 따라하며 배우는 C언어
c언어를 입력하다가 중간에 수정을 하게 되면 뒤에 글자가 사라지고 입력이 될 때가 있는데 어떻게 해결하나요??
c언어를 입력하다가 중간에 수정을 하게 되면 뒤에 글자가 사라지고 입력이 될 때가 있는데 어떻게 해결하나요??
- 미해결홍정모의 따라하며 배우는 C언어
Configuration Properties에 Debugging이 없으면 어떡하나요?
사진처럼 General만 있고 Debugging이 없는데 어떡해야 생기는건가요?
- 미해결홍정모의 따라하며 배우는 C언어
const와 define
const와 메크로define의 정확한 차이점이 뭘까요..?
- 미해결홍정모의 따라하며 배우는 C언어
calloc() 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키 강의에서 calloc() 함수는 할당시 할당된 요소들의 값을 모두 0으로 초기화 한다고 했잖아요. 근데 실제로 실행해보니 모두 0으로 초기화가 되지 않네요. 왜이런걸까요?