반응형

C_C++ 359

(C언어) uniq: 중복 라인을 제거하는 소스

파일 내용에서 똑 같은 행이 2개 이상 연달아 있으면 중복된 라인을 제거해서 한 개씩만 표준 출력하는 C언어 프로그램입니다. 테스트로 사용한 uniq.txt 파일은 다음과 같습니다. Get Get a string from a stream. a stream. a stream. Get a string from a stream. 실행된 결과는 다음과 같습니다. C언어 코드 #define _CRT_SECURE_NO_WARNINGS // Visual Studio #include #include #define TRUE1 #define FALSE0 #define LEN200 #define swap(a,b){ char *temp; temp=a; a=b; b=temp; } int main() { char buffer1[..

C_C++ 2023.03.28

비주얼스튜디오에서 스택(stack) 크기 설정(늘리기)

비주얼스튜디오에서 스택(stack) 크기는 기본으로 1MB로 설정되어 있습니다. 스택 크기는 프로젝트마다 설정할 수 있으므로 다음과 같이 크기를 설정할 수 있습니다. 1. [프로젝트] 메뉴[서 "속성" 속성을 선택합니다. 2. [링커] -> "시스템"에서 "스택 예약 크기" 입력합니다. 단위가 바이트(byte)이기 때문에 2M로 설정하고 싶다면 2097152를 입력하면 됩니다. 1 MB - 1048576 2 MB - 2097152 4 MY - 4194304 [

C_C++ 2023.03.25

(C언어) 복소수의 사칙연산: 합, 차(빼기), 곱(곱하기), 나누기

복소수의 사칙연산 [참고] 복소수의 사칙연산의 계산하는 방법은 다음 사이트를 참고했습니다. https://www.mathfactory.net/11177 C언어를 이용해서 복소수의 합을 구하는 코드만 작성해 보겠습니다. 복소수 정의는 구조체(struct)를 이용해서 정의합니다. #define _CRT_SECURE_NO_WARNINGS // Visual Studio #include struct complex { double real; double img; }; void add_complex(struct complex a, struct complex b) { struct complex c; c.real = a.real + b.real; c.img = a.img + b.img; printf("복소수의 합: %g..

C_C++ 2023.03.21

(C언어) write: 파일에 데이터를 쓴다

#include int write(int handle, void *buf, unsigned len); write 함수는 handle로 지시하는 파일에 buf의 내용을 len 길이만큼 저장합니다. write가 한 번에 기록할 수 있는 바이트 수는 65,535 크기이며, 실제로 기록된 바이트 수가 지정한 갯수보다 작으면 오류로 간주됩니다 - 디크스 오류로 인해 이러한 오류가 발생할 수 있습니다. 반환값 기록된 바이트 개수를 반환합니다. 오류가 발생한 경우에는 -1을 반환하고, 전역변수 errno에 다음 중 하나로 설정됩니다. EACCES : 작업이 거절되었다. EBADF : 파일 번호(핸들)가 잘못 되었다. 참고: open, read, write, _open, _read, _write #include #in..

(C언어) read, _read: 파일에서 데이터를 읽는다

#include int read(int handle, void *buf, unsigned len); read 함수는 hanle로 지정된 파일로부터 len 바이트의 문자를 읽어 buf에 저장합니다. 파일이 텍스트 모드로 열려있으면 캐리지 리턴을 제거하며, Ctrl_Z를 만나면 EOF는 반환합니다. read 함수가 읽어 들일 수 있는 바이트의 최대 크기는 65,534 바이트입니다. #include #include #include #include #include int main() { int handle; char s[100] = { 0 }; handle = open("open.txt", O_RDONLY); if (handle == -1) { perror("Error: "); return 1; } read(h..

(C언어) open: 파일을 연다

#include #include int open(const char *path, int access[, unsigned mode]); open 함수는 path로 지정된 파일을 엽니다. access 인수의 지정에 따라서 읽거나 쓰기 작업을 준비합니다. access는 bitwise OR(비트 논리합) 작업을 수행하며, 다음과 같은 기호 상수를 사용할 수 있습니다. 이 기호상수는 헤더 파일에 정의되어 있습니다. O_RDONLY 읽기 O_WRONLY 쓰기 O_RDWR 읽기와 쓰기 O_APPEND 추가 O_CREAT 파일이 존재하지 않으면 새로 생성하며, 이미 존재하면 영향을 미지치 않는다. O_TRUNC 파일이 존재하면 기존 파일의 길이를 0으로 만든다. O_EXCL O_CREAT와 함께 사용하며, 파일이 이미..

C_C++ 2023.03.14

(C언어) ultoa: 숫자를 원하는 진법의 문자열로 변환한다

#include char *ultoa(unsigned long value, char *string, int radix); ultoa 함수는 value 값을 radix로 지정된 진법으로 변환한 문자열로 변환합니다. NULL 문자열로 종료되며, radix 진법의 범위는 2부터 36이내의 숫자입니다. 이 함수는 최대 33바이트까지 반환할 수 있습니다. 비주얼스튜디오에서는 ultoa 함수 대신에 _ultoa 함수를 사용해야 합니다. 다음 예제는 ultoa 함수를 이용해서 숫자를 10진수, 16진수, 2진수로 변환된 값을 출력하는 예제입니다. #define _CRT_SECURE_NO_WARNINGS // Visual Studio #include #include int main() { unsigned long n ..

반응형