반응형

C 언어 10

[c언어 강좌] 6. 입출력 함수

- 입출력 함수란?사용자와 프로그램 사이에서 데이터를 주고 받기위한 함수를 입출력 함수 또는 I/O(input/output) 함수 라고 한다.- 입력 : 키보드, 마우스를 통해 데이터를 프로그램에게 전달.- 출력 : 프로그램으로 부터 받은 데이터를 모니터 같은 출력장치로 출력해주기.- printf() / scanf() printf() 와 scanf() 함수는 C언어에서 제공하는 표준 입출력 함수로 헤더파일에 정의되어 있다.- printf() : 출력 함수 - scanf() : 입력 함수함수 맨 뒷글자 f는 formatted의 약자로, 서식화된 입출력을 지원한다는 의미다. 출처 : https://sejong-kr.libguides.com/c.php?g=942233&p=6822320- printf()pri..

C 언어 2024.10.21

[c언어 강좌] 5. enum(열거형)

- enum 이란?enum(enumeration)은 열거된 상수를 별명으로 치환하여 사용하는 나열형이다.상수 1을 ONE이라는 별명을 지어준뒤, ONE을 부르면 1의 값을 사용 할 수 있다. - enum의 기본적인 형태우선 enum을 정의해 줘야한다. enum키워드를 사용해 enum의 이름을 e라고 지정해주고{ }; 안에 ZERO, ONE, TWO, THREE라는 별명을 적어주면 enum을 정의 할 수 있다.별명에 초기값이 없을 경우에는 0부터 시작하여 아래로 + 1 씩 더한 값이 지정된다.따라서 ONE, TOW, THREE, FOUR에 순서대로 0,1,2,3 상수가 알아서 지정된다.보통 별명은 대문자로 많이 사용한다. 하지만 회사마다 다를 수 도 있다.enum e //이넘 정의{ ZERO, //0..

C 언어 2024.08.16

[C언어 강좌] 4. 변수와 자료형

이번에는 변수와 자료형에 대해서 다뤄 보려고 한다. C언어는 내가 가장 좋아하고 많이 사용한 언어다. 내가 알고있는 다양한 내용을 담다보니 글이 길어졌지만 한 번 읽어보면 꽤 도움 될 거다.- 변수란?변수(variable)는 어떤 값을 저장 할 수 있는 메모리 공간이다. a = 5 라고 선언했을 때 a가 5를 저장한 변수가 된다. - 자료형이란?16(정수), 1.45(실수), 'h'(문자)를 변수에 담을때 자료형(data type)에 따라 구분해줘야한다. 아래 코드 처럼 a,b 변수 앞에 자료형(int, float)을 붙여줘서 정수인지, 실수인지 구분한다.int a = 16; //정수 float b = 3.14 //실수 - 자료형의 종류아래는 자료형의 종류를 나타낸다. 일단 이런게 있구나 정도로 대충 훑..

C 언어 2024.08.14

[C언어 강좌] 3. main 함수란

- main 함수란?main 함수는 프로그램 시작점이다.즉 모든 명령문의 시작은 main 함수에서 이뤄지며 무조건 1개만 존재한다.해당 코드는 hello world 라는 문자열을 출력하는 예제다.#include int main(){ printf("hello world\n"); return 0;} 결과 hello world - #include #incldue 는 헤더 파일, 라이브러리 등을 포함하라는 전처리기다.  는 stdio.h 를 감싸주는 문법이다.stdio 는 standard input output의 약자로 표준입출력에 관한 기능들을 가지고 잇다.h 는 header의 약자로 헤더파일로 불린다. 즉 #include 는 stdio.h가 가지고 있는 기능들을 가져와 사용할 수 있도록 한다. - int m..

C 언어 2024.08.11

[C언어 강좌] 2. visual studio 설치 및 프로젝트 생성

- visual studio란?Visual studio는 C언어 개발 할때 많이 사용하는 개발 툴이다.본인이 vs code 쓴다면 구글링해서 세팅하면 된다.  - visual studio 설치 및 실행아래는 내가 쓴 글들인데 차례대로 들어가서 따라하면 된다.https://goodprogramer.tistory.com/18 [Visual studio] Visual studio C언어/C++ 설치 하기- 최신버전(2022) 사이트 https://visualstudio.microsoft.com/ko/ Visual Studio: 소프트웨어 개발자 및 Teams용 IDE 및 코드 편집기 Visual Studio 개발 도구 및 서비스를 사용하면 모든 개발자가 모든 플랫폼 및 언어goodprogramer.tistor..

C 언어 2024.08.10

[C언어 강좌] 1. C언어 란?

- C 언어 란?C는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다. 켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어라 명명했고, 데니스 리치가 이것을 개선하여 C 언어가 탄생했다. 출처 : 위키백과   - C언어가 사용되는 곳과거에는 C언어가 짱이었다. 따라서 많은 곳에서 사용되었다.아래 그림에 나타나는 운영체제 뿐만 아니라 Mysql, Oracle 같은 데이터 베이스 등도 다 C, C++ 로 개발되었다.특히 하드웨어 제어, IOT는 여전히 C를 사용한다. 속도, 메모리 제어에서 따라올 언어가 없기 때문이다.    - C언어 장점1. 속도가 타 프로그래밍 언어에 비해서 매우 빠르다. 따라서 빠른 처리가 ..

C 언어 2024.08.10

[C언어] 버퍼 오버플로우(Buffer overflow) 예방법/ 스택 버퍼 오버플로우/ 힙 버퍼 오버플로우

버퍼 오버플로우 개념 버퍼 오버플로우는 버퍼에 할당된 저장 영역보다, 더 많은 자료를 입력하여 데이터를 변경 할 수 있는 조건이다. 공격자는 조건을 이용해 시스템 먹통으로 만들거나 코드를 삽입해서 시스템의 제어를 가진다. 버퍼 오버플로우는 스택 버퍼 오버플로우, 힙 버퍼 오버플로우 두 가지가 있다. 버퍼 오버플로우는 버퍼 오버런(buffer overrun), 버퍼 오버라이트(buffer overwrite)라고도 불린다. 버퍼 오버플로우 예제 아래 c언어 코드를 실행 해보자. strcpy_s(buffer, 20, input); 함수에서 문자열을 복사하는 예제다. #include #include void vulnerableFunction(char* input) { char buffer[10]; strcpy_..

C 언어 2024.02.24

[C언어] scanf 함수 에러 해결하기 (Erorr : C4996)/ scnaf 함수 강제로 사용하기

scanf 에러 발생(C4996) 오류 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Project2 C:\Project2\Project2\FileName.c 8 에러 해결 방법 에러를 읽어보면 scanf 함수는 더 이상 안전성을 보장하지 않아서 scanf_s 함수를 사용하라고 한다. 따라서 scanf 함수 대신 scanf_s 함수를 사용하면 에러가 안뜨게 된다. 만약 scanf 함수를 강제로 사용 하고 싶다면 아래를 읽으면 된다. scanf 함수 예..

C 언어 2024.02.10

[C언어] 문자열 입력 하기(scanf_s, scanf, gets)

문자열 입력, 출력 함수들 문자열 입력 함수는 대표적으로 세 가지가 있다. 1. scanf_s 2. scanf 3. gets 안전성 문제 때문에 scanf_s 함수 사용을 마이크로 소프트에서 적극 권장하고 있다. 따라서 나머지 함수들은 사용을 자제하는게 좋다. scanf_s 함수 사용하여 문자열 입력 1. char를 배열로 선언해주고 %c 대신 %s로 입력 받으면 된다. 2. 주의 할 점은 sizeof(input)처럼 크기를 지정해 줘야 한다. 크기를 지정하지 않으면 에러 발생. #include int main() { char input[16]; printf("문자 입력 : "); scanf_s("%s", input, sizeof(input)); printf("%s\n", input); return 0;..

C 언어 2024.02.10
반응형