본문 바로가기

Study_C, C++/홍정모의 따라하며 배우는 C언어

(50)
[홍정모의 따라하며 배우는 C언어] 9.3 함수의 자료형과 반환값 9.3 함수의 자료형과 반환값2개의 정수를 입력받아 가장 작은 정수를 출력하는 함수#pragma warning (disable:4996)#include int int_min(int, int);int main(){ int i1, i2; while(1){ printf("Input two integers : "); if(scanf("%d %d",&i1, &i2) != 2) break; int lesser = int_min(i1, i2); printf("The lesser of %d and %d is %d\n",i1, i2, lesser); return 0; } printf("End.\n");}int int_min(int i1, int..
[홍정모의 따라하며 배우는 C언어] 9.1 함수가 필요할 때 ~ 9.2 함수의 프로토타입 9.1 함수가 필요할 때함수가 언제, 왜 필요하고 어떻게 쓰는가? : 기능 확장이 필요한 경우, 같은 코드들이 반복될 때 사용함수 사용에 익숙해지면 C++, Python등의 객체지향 언어를 사용할 때 편리함 프로그램 작성시 고려 사항일반화 + 확장성 : 더 많은 경우에서 쉽게 동작하도록 함같은 기능이 여러번 나오지 않도록 함 : 같은 기능이 여러번 나오면 유지, 보수가 어려움 - 함수의 기본 형태return_type function_name (arguments){ Funciton body ----- ----- return return_variable}return type : 함수가 반환(출력)하는 변수의 자료형함수 선언시 return type 부분이 비어있다면 그 함수의 return ..
[홍정모의 따라하며 배우는 C언어] 8.9 텍스트 파일 읽기 8.9 텍스트 파일 읽기 파일의 데이터를 읽어들이는 방법과 그 때 EOF의 활용법 #pragma warning (disable:4996) #include #include // exit() 사용을 위한 library main() { int c; FILE* file = NULL;// file이라는 포인터 변수를 선언 char file_name[] = "my_file.txt";// 파일의 format이 text 파일. file = fopen(file_name, "r");// 파일의 스트림을 염 if (file == NULL) {// 파일을 열지 못하였을 때 NULL이 들어감 printf("Failed to open file.\n"); exit(1);// 파일을 여는데 실패했다고 알림. 그리고 프로그램 자체를 ..
[홍정모의 따라하며 배우는 C언어] 8.8 메뉴 만들기 예제 8.8 메뉴 만들기 예제 메뉴가 나오는 프로그램 #pragma warning (disable:4996) #include main() { char input, buffer; int i, j; while (1) { printf("Enter the letter of your choice : \n"); printf("a. avengers\tb. beep\nc. count\tq. quit\n"); input = getchar(); buffer = getchar(); if (input == 'a') printf("Avengers assemble!\n"); else if (input == 'b') printf("\a"); else if (input == 'c') { printf("Enter an integer : \..
[홍정모의 따라하며 배우는 C언어] 8.7 입력 스트림과 숫자 8.7 입력 스트림과 숫자스트림 : 사용자가 입력한 내용이 우리가 만든 프로그램으로 흘러들어가는 과정 #include #pragma warning (disable:4996) main(){ char str[255]; int i, i2; double d; scanf("%s %d %lf", str, &i, &d); printf("%s %d %f\n", str, i, d); scanf("%s %d %d", str, &i, &i2); printf("%s %d %d\n", str, i, i2); char c; while ((c = getchar()) != '\n') putchar(c); printf("\n");} Output : (hello 123 3.14 입력)hello 123 3.140000..
[홍정모의 따라하며 배우는 C언어] 8.6 입력 확인하기 8.6 입력 확인하기 사용자가 입력한 데이터가 내가 필요로 하는 데이터인지, 즉 의도한대로 입력됐는지 확인하는 프로그램 #include #pragma warning (disable:4996) main() { printf("Please input an integer and press enter.\n"); long input;// 큰 정수를 받기 위해 long type 사용 char c; while (scanf("%ld", &input) != 1) {// long 숫자가 하나만 들어오면 while문으로 진입하지 않음 printf("Your input - "); while ((c = getchar()) != '\n') putchar(c);// input left in buffer : 입력을 제대로 받지 못했다..
[홍정모의 따라하며 배우는 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..