본문 바로가기

C언어

(20)
[C언어] This function or variable may be unsafe 에러 문제 해결 C언어를 하다보면 코드상 문제가 없어 보이지만 에러가 발생한다면 고려해 봐야할 해결법이다. 에러에 저런 문구가 포함 되어있는 경우에 해결방법이다. (여기서 --- 는 어떤 변수나 함수를 대체한다.) '---' :This function or variable may be unsafe. Consider using --- instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 먼저, 에러가 뜨는 원인부터 간단하게 설명하면, C언어 책이나 인터넷 강좌에서 가르치는 함수들 중 몇개는 함수에 취약점이 있기 때문에 에러가 나는것이다. 위에 에러코드도 자세히 읽어보면 '이 함수나 변수는 안전하지 않을 수 있습니다.' 라고 적혀있다. 유명한 해킹 기법인 스택 버퍼 ..
[C언어] 구구단 출력하기 단을 선택해서 한 단 출력하기 #include int main() { int num; printf("출력할 단 : "); scanf("%d", &num); for (int i = 1; i < 10; i++) { printf("%d * %d = %d\n", num, i, num * i); } return 0; } (실행결과) for문을 이용해서 구구단을 쉽게 출력 할 수 있다. num 변수에 출력할 단의 숫자를 저장하고, num에 저장된 숫자에 for문을 이용해서 1 부터 9 까지 곱한 값을 출력해 내는 방식이다.
[C 언어] JSON 파일을 이용해서 데이터 받아오기 kgabis/parson Lightweight JSON library written in C. Contribute to kgabis/parson development by creating an account on GitHub. github.com C에서 JSON 파일을 읽어들여서 사용할 수 있는 오픈소스코드이다. 들어가서 ZIP파일로 다운받고 압축을 풀면된다. 압축을 풀고 나서 나온 폴더 내부에 parson.c 와 parson.h를 복사해서 JSON 파일을 사용할 프로젝트 폴더에서 .c 파일과 .h파일들이 있는곳에 넣으면 된다. 사용할 JSON 파일도 역시 같은 폴더에 넣으면 된다. example.json { "Num": 1, "Greeting": "Hello", "DNum": 1.5, "array": ..
[C 언어] 현재 콘솔창의 커서 위치 바꾸기 콘솔창에 출력하고 싶은 위치를 바꾸고 싶다면, 밑에 코드를 이용해 간편하게 위치를 바꿀 수 있다. gotoxy ex) #include #include void gotoxy(int x, int y); int main(void) { printf("Luden0 Blog"); gotoxy(10, 10); printf("Hello Visitor"); return 0; } void gotoxy(int x, int y) { COORD Pos = {x, y}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); } (실행결과) 대부분 gotoxy라고 명명하고 사용하는데 편의에 따라서 gotoxy가 아닌 다른 이름으로 바꾸고 사용해도 무관하다. gotoxy의..
[C 언어] 현재 콘솔창의 커서 좌표 알아내기 커서 위치 알아내는 코드 #include #include int main() { CONSOLE_SCREEN_BUFFER_INFO presentCur; // 콘솔 출력창의 정보를 담기 위해서 정의한 구조체 GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &presentCur); //현재 커서의 위치 정보를 저장하는 함수 printf("%d, %d\n", presentCur.dwCursorPosition.X, presentCur.dwCursorPosition.Y); //구조체의 저장한 값 출력 printf("\n\n "); GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &presentCur..
[C 언어] 무작위로 숫자 생성하기 (난수 생성기) 숫자를 랜덤으로 뽑아서 출력하게 하는 코드이다. 난수 생성기 #include #include //srand, rand를 사용하기 위한 헤더파일 #include // time을 사용하기 위한 헤더파일 int main() { srand(time(NULL)); // 난수 초기화 for (int i = 0; i 0 ~ 4사이의 랜덤한 숫자 ex) (ran..
[C언어] 피라미드 별찍기 - 1 직각 삼각형 피라미드 - 1 #include int main() { int num; //변수 선언 (입력받는 변수) scanf("%d", &num); //숫자를 입력받는 함수 for (int j = 0; j < num; j++) { for (int i = 0; i < j+1; i++) { printf("*"); } printf("\n"); } return 0; } (실행결과) 위에 for 구문이 작동하는 순서를 나열하자면 1. 5를 입력받는다. 2. 첫번째 for 구문에서 j=0이 정의됨과 동시에 j < 5라는 반복 조건이 걸림.(j가 5가되면 반복을 빠져나감) 3. 두번째 for 구문에서 i=0이 정의됨과 동시에 i < j+1라는 반복 조건이 걸림.(i가 j와 같을때 까지만 반복한다) 4. 두번째 fo..
[C 언어]do while로 최소 한번은 무조건 출력후 반복하기 do while do while도 while처럼 반복문이지만, 최소 한번은 먼저 출력한 후 반복을 수행 한다. while은 조건식에 따라서 반복 횟수가 정해지고 그에 따라 반복을 하는데, do while은 먼저 한번 출력 후 반복을 하게 된다. do while ex) #include int main() { int i = 0; do // 말 그대로 밑의 코드를 일단 수행한다 { printf("최소 한번은 출력한다!\n"); i++; } while (i == 0); // 그리고 반복의 범위를 지정 return 0; } (실행결과) do while 2 ex) #include int main() { int i = 0; do // 밑의 코드를 먼저 수행 { printf("최소 한번은 출력한다!\n"); i++; ..