묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
구조체 scanf_s 질문
안녕하세요. 구조체 코딩 공부하다가 오류가 계속 발생해서 무엇이 문제인지 모르겠어서 질문드립니다 ..ㅠscanf_s("%s" , p_friend->name, 메모리 크기)를 해야 되는거 같은데.. (unsigned int)sizeof(p_friend->name)를 추가하여 실행해봐도 실행이 안됩니다 ㅠㅠ어떤 코드를 작성해야하는 것이 맞을까요..? 구글링해도 1시간째 고민을 해봐도 답이 없어 질문드립니다 !
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
scanf_s(" %d", &answer); 이후 바로 종료
이후 printf로 정답, 오답 여부가 안나오는데 뭐가 문제일까요? 검색으로 입력버퍼도 찾아봤는데 해결이 안되네요.
-
미해결정보처리기사 실기 (2020 개정) 제대로 배우기 Part.1
C언어 데이터 입출력 문의
안녕하세요 문의드릴게 있어서 글남깁니다. 동영상 17분50초 부터 보면 계산문제푸는 방법에대해나오는데 scanf에서 %o = 8진수인데 %d로 해서 10진수로 바꿔서 출력을 할 때 13(8)이라고 글씨로 기재되어있는 부분에 1 = 8진수라서 1X8로 계산을하는데 3 = 1 <<이부분에 1은 어떻게 3x1로 계산이 되어서 1인지 궁금합니다.. 단순하게 배열로보면 0번째자리 [0] [1] 이라서 1로 계싼이 되는건지 궁금합니다. 강의 너무 잘보고 있는데 답변해 주시면 감사하겠습니다!
-
해결됨홍정모의 따라하며 배우는 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언어
scanf error에 관한 질문
7.4 다중 선택 강의를 따라 하다 C6031 Return value ignored: 'scanf' 를 해결하지 못하고 있는 상태 입니다. 일단 제가 만든 코드는 아래와 같습니다. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define BASE1 12000000.0 #define BASE2 46000000.0 #define BASE3 88000000.0 #define BASE4 150000000.0 #define BASE5 300000000.0 #define BASE6 500000000.0 #define RATE1 (6.0 / 100.0) #define RATE2 (15.0 / 100.0) #define RATE3 (24.0 / 100.0) #define RATE4 (35.0 / 100.0) #define RATE5 (38.0 / 100.0) #define RATE6 (40.0 /100.0) #define RATE7 (42.0 /100.0) #define BASIC_DEDUCTION 1500000.0 int main() { double income = 0.0; double tax = 0.0; double tax_base = income - BASIC_DEDUCTION; printf("Enter your annual income : "); scanf("%f", &income); if (tax_base <= BASE1 && tax_base > 0) tax = tax_base * RATE1; else if (tax_base <= BASE2) tax = (BASE1 * RATE1) + ((tax_base - BASE1) * RATE2); else if (tax_base <= BASE3) tax = (BASE1 * RATE1) + ((BASE2 - BASE1) * RATE2) + ((tax_base - BASE2) * RATE3); else if (tax_base <= BASE4) tax = (BASE1 * RATE1) + ((BASE2 - BASE1) * RATE2) + ((BASE3 - BASE2) * RATE3) + ((tax_base - BASE3) * RATE4); else if (tax_base <= BASE5) tax = (BASE1 * RATE1) + ((BASE2 - BASE1) * RATE2) + ((BASE3 - BASE2) * RATE3) + ((BASE4 - BASE3) * RATE4) + ((tax_base - BASE4) * RATE5); else if (tax_base <= BASE6) tax = (BASE1 * RATE1) + ((BASE2 - BASE1) * RATE2) + ((BASE3 - BASE2) * RATE3) + ((BASE4 - BASE3) * RATE4) + ((BASE5 - BASE4) * RATE5) + ((tax_base - BASE5) * RATE6); else if (tax_base > BASE6) tax = (BASE1 * RATE1) + ((BASE2 - BASE1) * RATE2) + ((BASE3 - BASE2) * RATE3) + ((BASE4 - BASE3) * RATE4) + ((BASE5 - BASE4) * RATE5) + ((BASE6 - BASE5) * RATE6) + ((tax_base - BASE6) * RATE7); printf("Your tax amount for the annual income is %f.\n", tax); return 0; } 계속 scanf에 입력한 값이 정확히 반영되지 않아 debug를 해보니 제가 입력한 값을 받아들이는게 아니라 scanf returned value 1 int 을 보아하니 제가 입력한 값의 갯수를 반영 하는듯 합니다. 조언 부탁드립니다.
-
미해결문제로 배우는 C언어
scanf 입력한 수 중 일부 자리만 저장
1. 이해한 것 강의에서 설명한대로 scanf는 lf로 받고 printf 시에만 0.2f 를 하게되면, 진짜 둘째짜리까지만 받은게 아니라 원래 소수까지 받고 나서 곱한 뒤에 출력할 때 소숫점 셋째자리에서 반올림하는 코드라고 이해했습니다. 2. 궁금한 것 3.1295846 과 7.118592 를 입력해도 3.12와 7.11 만 입력받아서 출력예제와 동일한 값 22.18이 나오게 할 수는 없나요? 있다면 코드를 알고싶어요. 3. 제 생각 저는 scanf("%0.2lf %0.2lf", &a, &b) 를 시도해봤는데 0이 나왔습니다. 문자열 배열 두개를 선언해서 [인덱스] 번호를 활용해 0부터 쭉 받으며 데이터가 숫자인지 소수점인지 비교하다가 소수점 발견시 그 요소 이후 두 요소만 더 저장하는 방법을 생각해보았는데 배보다 배꼽이 큰 것 같습니다.
-
미해결홍정모의 따라하며 배우는 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언어
8.5강 5분 5초 질문있습니다. getchar을 scanf로 바꿔도 되나요?
while ( c = getchar() != '\n' ) 부분을 getchar 말고 scanf 써도 되나요?? scanf가 더 큰 포함관계라고 생각하는데 넣어도 상관없나요?
-
미해결
반복문안에서 scanf의 쓰임을 잘모르겠습니다!!
#include<stdio.h> int main(void) { int i,n, a,max=0; scanf("%d\n", &n); for (i = 1; i<=n; i++) { scanf("%d", &a); if (a > max) max = a; } printf("%d", max); return 0; } 여기서 반복문안에 scanf가 들어가있으면 계속해서 무언가를 입력해야 되는거 아닌가요?? 최대값을 구하는 문제인데 왜 저렇게 구하는지 모르겠어요..ㅜ
-
미해결
scanf 스킵 문제...
#include <stdio.h> int main() { char str[99]; char str_new[99]; printf("첫번째 문단: "); scanf("%[^\n]s", &str); printf("두번째 문단: "); scanf("%[^\n]s", &str_new); if(str == str_new) { printf("true\n"); } else { printf("false\n"); } } 첫번째 scanf는 잘되는데, 두번째 scanf가 스킵되는데 어떻게 해야되나요?
-
미해결홍정모의 따라하며 배우는 C언어
scanf 반환값이 무시되었습니다 자꾸 떠요
강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 안녕하세요 교수님 강의를 보면서 따라하는데 자꾸 오류가 생겨서 혼자서 도저히 해결을 못할 것 같아 문의드립니다! #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i = 0, j = 0; printf("input two integers"); scanf("%d%d", &i, &j); printf("%d %d\n",i,j); return 0; } 정말 교수님이랑 같은 코드로 코딩을 했는데 scanf 반환값이 무시되었습니다라고 오류가 뜹니다.. 혹시 해결 가능할까요?ㅜ