- 버퍼 오버플로우(Buffer Overflow) 버퍼 오버플로우란 프로그램 데이터를 버퍼에 저장할때 버퍼가 가득 차 넘치는 상황을 말한다. 간단하게 예를 들어보자. #include #define LEN_INPUT 10 #define _CRT_SECURE_NO_WARNINGS int main(void) { char s1[LEN_INPUT]; scanf_s("%s", s1); printf("%s", s1); } 이렇게 할 경우 출력은 나오지 않는다. 이를 해결하기 위해선 버퍼 크기를 지정해주어야 한다. #include #define LEN_INPUT 10 #define _CRT_SECURE_NO_WARNINGS int main(void) { char s1[LEN_INPUT]; scanf_s("%s", s1, LEN_INPUT); printf("%s", s.. 2023.12.27
- #3 - 변수와 자료형 (1) 코딩을 한다면 필수적으로 필요한 존재가 있습니다. 바로 변수(Variable)입니다. 오늘은 이 변수에 대해 알아봅시다. 변수는 무언가를 저장하는 그릇 과 같은 존재입니다. 곧바로 예를 들어봅시다. #include int main(void) { int A = 1; printf("%d", A); } 위 코드에서는 변수 A에 1을 담았습니다. 그리고 변수 앞에는 int 라는 글자가 함께 붙어있습니다. 이 int가 바로 자료형 입니다. int형의 변수 A 를 선언하여 A 에 1을 담아라! 이런 이야기 입니다. 아 이게 무슨말일까요? 자료형 자료형이란 변수를 담을 그릇의 형태를 말합니다. 우리가 아이스크림은 콘 위에 담고, 볶음밥은 접시에, 택배물품은 종이상자에 담습니다. 그런데 아이스크림을 종이상자에 담고, .. 2023.12.18
- [C언어] 반환값이 무시되었습니다 scanf 오류 해결방법 반환값이 무시되었습니다 scanf 오류 해결방법 C언어에서 scanf를 사용하여 문자를 받을때 값이 무시되는 경우가 있다. 이러한 경우, 해결 방법을 알아보자. #include //아래 코드는 문제가 발생한다. int main(void) { char var; printf("값을 입력 해 주세요: "); scanf_s("%c", &var); printf("값은 %c 입니다.", var); } 이런 문제가 있다고 가정해보자. 이러한 경우에 값이 무시되는 경우가 있다. 그 이유는 다음과 같다. 원인 우리가 값을 입력하고 나서 무엇을 입력하는가? 바로 엔터이다. 엔터는 C언어에서 \n 으로 표시한다. 때문에 입력을 완료하고 엔터를 누르는 순간, 엔터 또한 \n 으로 인식이 되기 때문에 문자형 변수에는 \n이 들.. 2023.11.07
- [C언어] 이중for문으로 구구단을 만들어보자 c언어로 간단하게 구구단을 출력해주는 코드를 작성해보자. 구구단을 만들기 위해선 이중for문을 사용해야 한다. 그렇게 어렵지 않다. 구구단 세로 출력 소스코드 #include int main(void) { for (int j = 1; j < 10; j++) { for (int i = 1; i < 10; i++) { printf("%d x %d = %d\n", j, i, j * i); } } } 아주 간단하다. 이제 출력결과를 확인 해 보자. 구구단 세로 출력결과 완벽하게 동작하는 것을 확인할 수 있다. 그럼 이제 가로로 출력을 해보자. 전혀 어렵지 않다. 그저 9단까지 갔을때 줄바꿈을 해주면 된다. 구구단 가로 출력 소스코드 #include int main(void) { for (int j = 1; j .. 2023.07.05
- #2 - printf() / scanf() 안녕하세요 Melon 입니다. 이번 강좌에서는 printf()와 scanf()에 대해 알아볼겁니다. 둘다 c언어를 사용하는데 있어 가장 기본적인 명령어입니다. 모든 언어는 Hello World부터.. / printf() printf()는 무언가를 출력할때 사용됩니다. 변수에 저장된 값, 혹은 우리가 원하는 문자열, 문자 이런것들을 출력하는데 사용됩니다. #include int main(void) { printf("Hello World!"); } 이 printf()에 대해서는 첫번째 강좌에서 소개드린 바 있습니다. 위의 코드에서는 Hello World가 출력이 됩니다. 여기서는 문자열을 출력했습니다. prinf() 안에 쌍따옴표로 문자열을 지정해 줍니다. 그럼 숫자는 어떻게 출력할까요? #include i.. 2023.06.29