C Programming 23

C언어 공백 포함 문자열 입력 받기 (scanf, gets) - 공부하는 도비

C를 사용하여 문자열을 입력받을 때, 무심코 공백이 포함된 문장을 입력하다가 엔터나 스페이스바가 입력된 기준으로 그 앞까지만 배열에 저장되는 걸 종종 보게 된다. 이러한 코드를 실행시켜 다음과 같이 입력을 하면, 원하는 결과가 출력되지 않는 걸 확인할 수 있다. 따라서, 우리는 배열에 공백을 포함하여 입력받고 싶을 땐 아래와 같은 2가지 방법을 사용하면 된다. 1. scanf 사용 시 [^\n] 추가 2. gets 함수 사용 gets 함수는 기본적으로 공백을 포함해서 입력을 받는 함수이다. 물론 안정성 때문에 gets 함수 사용이 권장되지는 않으니 1번 방법을 사용하여, 공백을 포함한 문자열을 입력받으시면 됩니다.

C Programming 2022.10.03

C언어 입력한 년도에 따른 달력 출력 - 공부하는 도비

오늘은 입력한 년도에 따른 달력을 출력해보겠습니다. 달력 출력하기를 위해선, 윤년/평년 계산과 1월 1일이 무슨 요일로 시작되는지 알아야 합니다. 코드는 다음과 같습니다. - 함수 LeapYear은 윤년/ 평년 판단 함수입니다. - GetStart는 입력된 년도의 1월 1일이 무슨 요일로 시작되는지 알아내는 함수입니다. - PrintMonth는 달력을 출력하는 함수입니다. #define _CRT_SECURE_NO_WARNINGS #include int LeapYear(int year); void PrintMonth(int check, int start_point); int GetStart(int year); int main() { int input_year; scanf("%d", &input_year);..

C Programming 2022.09.30

visual studio scanf 오류 해결 방법 5가지 - 공부하는 도비

visual studio를 사용하다 보면, 다른 컴파일러에서 잘 사용하던 scanf 함수에 오류가 있다고 하는 경우가 있습니다. 간단하게 저 오류에 대해서 설명하면, scanf 는 안전하지 않은 함수이니 다른 조치를 취하여라..! 요런 뜻입니다. 해결 방법은 총 5가지가 있습니다. 1. scanf_s 사용 가장 간단한 방법으로 scanf에다가 _s 를 추가로 적어주면 됩니다. 하지만, 비쥬얼에서 scanf_s로 작성한 코드르 다른 컴파일러에다가 쓰면 오류가 나니 추천하는 방법은 아닙니다. #include int main() { int a; scanf_s("%d", &a); return 0; } 2. #define _CRT_SECURE_NO_WARNINGS 사용 코드 작성 시 가장 윗부분에 #define ..

C Programming 2022.09.30