본문 바로가기

Study_C, C++

(52)
[홍정모의 따라하며 배우는 C언어] 8.4 사용자 인터페이스는 친절하게 ~ 8.5 숫자와 문자를 섞어서 입력받기 8.4 사용자 인터페이스는 친절하게 문자를 계속 입력받으며 횟수를 세고 n을 입력하면 종료하는 프로그램 #include #pragma warning (disable:4996) main() { int count = 0; while (1) { printf("Current count is %d. Continue? (y/n)\n", count); if (getchar() == 'n') break; while (getchar() != '\n')// 버퍼에서 첫번째 입력한 문자만 남김 continue; count++; } } Output : Current count is 0. Continue? (y/n) (a 입력) Current count is 1. Continue? (y/n) (b 입력) Current coun..
[홍정모의 따라하며 배우는 C언어] 8.1 입출력 버퍼 ~ 8.3 입출력 방향 재지정 8.1 입출력 버퍼 - 버퍼란? 버퍼란 위의 사진처럼 입력받은 값들을 임시로 모아놓는 공간 - 버퍼를 사용하는 이유 프로그래밍시 가장 느린 작업은 입출력 작업이고 그 다음은 메모리 할당 과정 느린 입출력 작업 속도의 개선을 위해 버퍼 방식을 사용 입력을 받을때마다 하나씩 바로바로 출력하면 속도가 느리다 위의 방식을 대신해서 입력을 버퍼에 모았다가 2가지 경우가 되면 출력 버퍼가 다 찼을 때 엔터를 쳤을 때 ('\n' 이 들어올 때). 콘솔 입출력, 즉 지금까지 우리가 봐온 경우는 전부 이 방식 버퍼의 크기는 시스템 마다 다르나 보통 효율성을 가장 높일 수 있는 구조로 설계됨 크기 조절 가능 비싼 GPU는 메모리가 커서 버퍼의 크기가 더 넓음 1) 표준 입출력 함수 #define _CRT_SECURE_NO..
[홍정모의 따라하며 배우는 C언어] 7.11 최대, 최소, 평균 구하기 예제 ~ 7.13 goto를 피하는 방법 7.11 최대, 최소, 평균 구하기 예제 입력받은 수들의 최댓값, 최솟값, 평균값을 구하는 프로그램 0 미만, 100 초과인 입력값들은 무시 #define _CRT_SECURE_NO_WARNINGS #include #include // FLT_MAX 사용 위해 include int main() { float max = -FLT_MAX; float min = FLT_MAX; float sum = 0.0f; float input; int count = 0; while (scanf("%f", &input) == 1) { if (input > 100.0f || input max) ? input : max; min = (input < min) ? inpu..
[홍정모의 따라하며 배우는 C언어] 7.8 단어 세기 예제 ~ 7.10 루프 도우미 continue와 break 7.8 단어 세기 예제 문장을 입력받으면 문장의 글자 수, 단어 수, 그리고 줄 수를 출력하는 프로그램을 작성하라. ' . '(마침표)로 입력의 끝을 표시한다 #define _CRT_SECURE_NO_WARNINGS #include #include int main() { char ch; int cha = 0, word = 0, line = 0; bool word_flag = false; // false : 새로운 단어가 시작하지 않았다 bool line_flag = false; // false : 새로운 줄이 시작하지 않았다 printf("Enter text : "); while ((ch = getchar()) != '.') { if (!isspace(ch)) { cha++; if (!word_flag)..
[홍정모의 따라하며 배우는 C언어] 7.7 논리 연산자 Logical operators 7.7 논리 연산자 Logical operators C언어의 logical operators && : and || : or ! : not #define _CRT_SECURE_NO_WARNINGS #include #include // bool 자료형 사용 #include int main() { bool test1 = 3 > 2 || 5 > 6;// true. or은 둘 중 하나만 참이여도 참 bool test2 = 3 > 2 && 5 > 6;// false. and는 둘 모두가 참일때만 참 bool test3 = !(5 > 6);// true. equivalent to 5 2 or 5 > 6; bool test5 = 3 > 2 and 5 > 6; bool test6 = not(5 > 6); printf("..
[홍정모의 따라하며 배우는 C언어] 7.5 else와 if 짝짓기 ~ 7.6 소수 판단 예제 7.5 else와 if 짝짓기 #define _CRT_SECURE_NO_WARNINGS #include int main() { int number; scanf("%d", &number); if (number == 1) printf("One\n"); else if (number == 2) printf("Two\n"); else if (number == 3) printf("Three\n"); if (number > 5) { if (number < 10) printf("Larger than 5 smaller than 10\n"); else printf("Larger than 10\n"); } else printf("Less than or equal to 5\n"); return 0; } Output : (3 ..
[홍정모의 따라하며 배우는 C언어] 7.3 ctype.h 문자 함수들 ~ 7.4 다중 선택 else if 7.3 ctype.h 문자 함수들 #define _CRT_SECURE_NO_WARNINGS #include #include main() { char ch; while ((ch = getchar()) != '\n') { if (islower(ch))// 소문자인가 ch = toupper(ch);// 소문자 -> 대문자 else if (isupper(ch))// 대문자인가 ch = tolower(ch);// 대문자 -> 소문자 else if (isdigit(ch) != 0)// 숫자인가 ch = '*'; putchar(ch); } putchar(ch);// ch에 남아있는 '\n' 출력 return 0; } Output: (1234abcdABCD 입력) ****ABCDabcd Control character..
[홍정모의 따라하며 배우는 C언어] 7.1 분기문 if ~ 7.2 표준 입출력 함수들 getchar(), putchar() 예제 7.1 분기문 if if (expression) statement;// expression이 true이면 statement 실행. false이면 넘어감 #define _CRT_SECURE_NO_WARNINGS #include main() { int number; printf("Input a positive integer : "); scanf("%d", &number); if (number % 2 == 0) printf("Even\n"); else printf("Ood\n"); return 0; } Output : (2 입력) Even (3 입력) Ood 7.2 표준 입출력 함수들 getchar(), putchar() 예제 #define _CRT_SECURE_NO_WARNINGS #include// get..