본문 바로가기
728x90

프로그래밍 언어73

[C/C++] 두 수를 교환하는 함수 #include void inter_change(int *u, int *v); int main(void){ int x = 5, y = 10; printf("교환 전: x = %d, y= %d\n", x, y); inter_change(&x, &y); printf("교환 후: x = %d, y= %d\n", x, y); } void inter_change(int *u, int *v){ int temp; temp = *u; *u = *v; *v = temp; } NOTE 함수에 x와 y의 주소를 전달함으로써, inter_change()가 그 변수들에 접근할 수 있게 한다. 포인터와 간접 연산자 *를 사요함으로써 함수는 각각의 주소에 저장되어있는 값들을 구하고 변경할 수 있다. 2022. 3. 22.
[C/C++] 대화식 입력의 예제 1. scanf() 및 while() 함수 이용 while(scanf("%ld", &num) == 1){ /*루프에서 처리할 동작들*/ } • 프로그램이 정상적으로 입력을 받았는지 확인하기 위해서 scanf()를 사용함 a. scanf()의 리턴값: 성공적으로 읽은 항목의 수 - 따라서, 하나의 정수를 읽는데 성공한다면, scanf()는 1을 리턴함 - EOF: 만일, scanf()가 파일의 끝을 만나거나 하드웨어적인 문제를 만나면 EOF를 반환한다. 2022. 3. 19.
[C/C++] 기본적인 파일 입출력 함수 요약 1. C 프로그램은 입력을 바이트들의 스트림으로 인식한다. - 파일, 키보드와 같은 입력장치, 다른 프로그램의 출력은 스트림의 소스가 될 수 있음 2. C에서 특정 파일에 접근하기 위해선, 1) 파일 포인터(FILE *형)을 생성 2) 그 포인터에 하나의 특정 파일 이름을 연결 3. 파일의 끝 - C의 입력 함수들은 파일의 끝을 나타내는 EOF 문자를 읽으면, 파일의 끝에 도달했다고 인식한다. 1. 텍스트 인식 vs 바이너리 인식 ANSI C는 파일을 읽을 때, 두 가지 인식을 제공한다; 텍스트 인식(text)과 바이너리(binary) 인식 2. 입출력 수준 두 가지 입출력 수준: 저수준 입출력 (Low-level I/O)와 표준 고수준 입출력 (Standard high-level I/O) 1) 저.. 2022. 3. 7.
[표준 ANSI C 라이브러리] stdio.h 표준 입출력과 관련된 함수들과 FILE 형, EOF값, NULL값, 표준 입출력 스트림인 stdin, stdout, stderr 등을 정의한다. 프로토타입 설명 void clearerr(FILE *); 파일 끝과 에러 지시자를 소거한다. int fclose(FILE *); 지시된 파일을 닫는다 int feof(FILE *); 파일의 끝을 검사한다. int ferror(FILE *); 에러 지시자를 검사한다. int fflush(FILE *); 지시된 파일의 버퍼를 비운다. int fget(FILE *); 지시된 입력 스트림에서 다음 문자를 가져온다. int getpos(FILE * restrict, fpos_t * restrict); 파일 위치 지시자의 현재 값을 저장한다. char * fgets(cha.. 2022. 3. 4.
[C/C++] 기본적인 입출력함수 C/C++에서의 대표적인 입출력함수 (Input/output functions, I/O functions) printf() 함수 1. Syntax printf(control-string, item1, item2, ...) • control-string: 어떤 포멧으로 출력할 것인지를 지정하는 문자열 (포멧 문자열) • 포멧 문자열은 각 항목마다 하나의 포멧 지정자를 가져야 함 • 포멧 문자열을 서로 구별되는 두 가지 정보를 가지고 있음 - 실제로 출력될 문자들 - 포멧 지정자 • 리턴값 - 자신이 출력한 문자의 수를 리턴함 - 에러가 발생한 경우에는 하나의 음수를 리턴함 - printf()의 리턴값은 주목적인 출력에 비해서 부수적인 것이라 잘 사용되지 않는다. - printf() 리턴값의 한가지 용도는 .. 2022. 2. 27.
[C/C++] 디버그, 신텍스 에러, 세만틱 에러 1. 디버그(Debug) 프로그램 상의 에러를 버그(Bug)라 부르며, 이러한 에러를 찾는 과정을 디버그(Debug)라 부른다. 2. 에러의 종류: 신텍스 에러 vs 세만틱 에러 1) 신텍스 에러 (Syntax error) (a) C/C++언어의 규칙을 따르지 않을 때 발생 (b) 신텍스 에러를 발견/확인하는 방법? - 컴파일을 하기 전 에러가 있는지 눈으로 확인 - 컴파일러*가 찾아낸 신텍스 에러를 조사 * 컴파일러를 통해서 에러의 종류와 위치를 함께 확인이 가능 2) 세만틱 에러 (Semantic Error) (a) C 언어의 규칙은 정확히 따랐지만, 사용자가 원하지 않은 결과를 초래한 경우 (b) 컴파일러는 세만틱 에러는 발견해주지 못하며, 전적으로 세만틱 에러를 찾는 건 프로그래머의 몫이다. - .. 2022. 2. 19.
[Python 3] 중복 문자 세기 특정한 문자열에 중복된 문자들이 몇 개 있는지 확인하는 문제를 푼다고 가정하자. 이런 경우, 아래와 같이 크게 2가지의 방법이 있다 [1, 2]. 개인적으로 시간이 된다면, [2]의 "kyrill"의 코멘트를 읽어보면 좋을 것 같다. 1) count 메소드 이용하기 2) collection 모듈의 Counter 사용하기 1. count 메소드 이용하기 - count 메소드는 python의 내장함수 - syntax: .count() - returnn: 혹은 이 에 중복되어 있는 횟수 - NOTE: 리스트의 크기가 크면 클수록, count를 사용하는 방법이 비효율적이 된다 [2]. >>> List = ["b", "a", "a", "c", "b", "a", "c",'a'] >>> counter_b=List.c.. 2021. 12. 20.
[C/C++] 문자/문자열 입출력 프로그램을 사용하는 사용자는 입출력 함수를 통해서 프로그램과 정보를 주고 받을 수 있다. C에서 흔히 사용하는 입출력 함수의 예는 아래와 같다; printf(), scanf(), getchar(), putchar(). 1. 단일 문자 입출력 1: getchar()/putchar() 함수 설명 getchar() - 헤더파일: stdio.h - 한 문자를 입력하여 반환 - 파일의 끝에 도달했을 때, EOF값을 반환 putchar() - 헤더파일: stdio.h - 한 문자를 출력 ex) putchar(ch) 변수 ch에 저장된 문자 하나를 출력 Note: getchar()와 putchar()의 경우 진짜 함수가 아니며, 전처리기 매크로에 의해서 정의됨 예시) - 키보드로 입력한 문자를 바로 출력 - EOF .. 2021. 8. 25.
[C/C++] 메뉴 선택 방식 목적 1. 사용자가 프로그램의 특정한 선택 사항 중 하나를 선택하도록 함 2. 가능한 문제점 - 사용자가 프로그램의 지시대로 따를 때, 프로그램이 부드럽게 넘어가도록 만드는 것 - 사용자가 지시대로 따르지 않을 때에도 프로그램이 부드럽게 넘어가게 하는 것 Pseudo code 1. 선택을 얻는다. 2. 그 선택이 'q'가 아닌 동안 - 원하는 선택으로 이동하여 지정된 작업을 수행 - 다음 선택을 얻음 NOTE 1: 메뉴를 반복적으로 접근하도록 하기 위해, while 문을 이용 NOTE 2: 수행할 작업들은 switch-case 문으로 해결 예시 1) NOTE 1: get_choice() 함수 - 'a, 'b', 'c', 'q' 값만을 리턴할 수 있도록 정의 - Enter를 누를 때마다 생성되는 개행문자를.. 2021. 8. 24.
728x90