C언어

    Visual studio 2017 cmd창 바로 꺼지는 현상 해결 방법

    Visual studio 2017 cmd창 바로 꺼지는 현상 해결 방법

    Visual studio 가 언제부턴가 콘솔응용프로그램에서 빈프로젝트 체크하는게 없어졌다. 그로인해 디버깅없이 시작할때 cmd창이 바로 꺼지는 현상이 나타나게 되었는데, 때문에 기존에 사용하던 사람들은 getchar, system("pause") 라던지를 맨마지막에 삽입하거나 중단점을 return 0 위에 넣는 등의 귀찮은 행위로 해결하려하는 사람이 많았다. 하지만 여러모로 알아본 결과 해결법이 있었다! 알아본 해결법 두가지를 소개해보려 한다. 첫번째, 먼저 빈프로젝트로 생성하는 경우이다. ctrl + shift + n 을 누르면 켜지는 새 프로젝트 창이다.c언어를 처음 배울때 빈프로젝트로 항상 해왔기 때문에 우린 이걸 누르고 getchar, system("pause")를 하며 코딩을 하는 경우가 많을 ..

    [C언어]conio.h 에 대해 알아보자

    conio.h 는 콘솔 입출력 함수를 제공하는 헤더입니다. 여러가지로 유용하게 쓸수 있는 함수가 많습니다.특히 전 kbhit 이랑 getch를 많이 사용합니다!! int kbhit() keyboard hit의 약자이며 버퍼에 값이 있으면 1을, 없으면 0을 리턴한다.if문과 같이 사용하기 좋다. int getch() 값을 입력할 때까지 대기했다가 값이 들어오면 버퍼에 저장했다가 버퍼에서 꺼내서 리턴한다. 예외키를 누를 경우 두 개의 값이 생긴다. 확장키들을 구분하는 방법은 getch함수를 다시 한 번 호출 하면 알 수 있다. 단 에코 기능은 없다. int cscanf(const char *_Format, ...) scanf함수와 동일하되 scanf함수는 입력을 받고 엔터를 누를 때까지는 고칠 수 있지만 ..

    [C언어]ctype.h 에 대해 알아보자

    ctype.h는 C 언어의 표준 라이브러리로, 문자들을 조건에 맞는지 검사하고 변환하는 함수들을 포함하고 있다.특별히 자주 쓸일이 있는 함수들은 아니다. 그렇지만 알파벳 관련된 함수를 찾을때면 ctype을 떠올리도록 하자. 함수함수설명문자 검사int isalnum ( int c );c가 알파벳 또는 숫자이면 0이 아닌 값을 반환한다.int isalpha ( int c );c가 알파벳이면 0이 아닌 값을 반환한다.int iscntrl ( int c );c가 제어 문자이면 0이 아닌 값을 반환한다.int isdigit ( int c );c가 숫자이면 0이 아닌 값을 반환한다.int isgraph ( int c );c가 그래픽 문자이면 0이 아닌 값을 반환한다.int islower ( int c );c가 소문..

    [C언어]assert.h 에 대해 알아보자

    assert.h 는 C 언어 전처리기 매크로 중 하나이며 이 매크로는 표명을 구현하여 프로그램이 추정한 것을 확인하며 거짓인 경우 진단 메시지를 출력한다. void assert(int expression)This is actually a macro and not a function, which can be used to add diagnostics in your C program. 예시#include #include int test_assert(int x) { assert(x

    [C언어] math.h 에 대해 알아보기

    math.h 는 딱 봐도 기능이 수학적인 것들이 포함 되있을 거라는 느낌이 올 것입니다.힘들게 우리가 코딩하지 않고도 이렇게 라이브러리에 수학식들이 있다는것에 감사히 여깁시다..정작 많이 쓰진 않는건 함정 함수함수설명삼각 함수double sin ( double x );사인 x를 구한다.double cos ( double x );코사인 x를 구한다.double tan ( double x );탄젠트 x를 구한다.역 삼각 함수double asin ( double x );아크 사인 x를 구한다.double acos ( double x );아크 코사인 x를 구한다.double atan ( double x );아크 탄젠트 x를 구한다.double atan2 ( double y, double x );아크 탄젠트 y/..

    [C언어] stdio.h 에 대해 알아보기

    stdio.h 는 Standard Input/Output library (표준 입출력 라이브러리)의 약어로써, C 언어의 표준 라이브러리 함수의 매크로 정의, 상수, 여러 형의 입출력 함수가 포함된 헤더 파일이다. 우리가 항상 stdio.h 를 포함하는 이유는 자주쓰는 printf, scanf가 여기 라이브러리에 있기 때문이다.또한 파일 입출력 함수가 있는등 중요한 함수가 많다. 멤버 함수stdio.h에 선언되어 있는 함수는 일반적으로 파일 조작 함수와 콘솔 입출력 함수 둘로 구분된다.이름해설파일 조작 함수fopen, freopen파일을 읽거나 쓴다.fclose파일을 닫는다.remove파일을 삭제한다.rename파일 이름을 바꿉니다.rewind파일 위치를 초기화한다. [2]tmpfile임시 파일을 만들고..

    [C언어] stdlib.h 헤더에 대해 알아보기

    표준 라이브러리인 stdlib.h 는 난수생성, 문자열 형식을 다른 형식으로 변환, 의사 난수 생성, 동적 메모리 관리 등의 함수를 포함하고 있다. 라이브러리 함수를 다 외울 필요는 없지만 stdlib.h에 있는 함수들은 자주 쓰는것들이 많으니 알아두면 좋다.함수설명문자열 변환int atoi ( const char * str );str을 int로 변환한다.long int atol ( const char * str );str을 long으로 변환한다.double atof ( const char * str );str을 double으로 변환한다.long int strtol ( const char * str, char ** endptr, int base );str을 base진법으로 long으로 변환한 뒤 endp..

    [C언어] 문자열 선언&출력하기

    [C언어] 문자열 선언&출력하기

    C언어는 문자열 String이 따로 없기 때문에 캐릭터형 배열인 char a[20]을 선언해주어 사용합니다. 우리 눈에 보이지 않지만 문자열은 항상 구분을 위해 단어가 끝나면\0을 뒤에 저장해줍니다. C language 라는 문자를 저장할때 C\0language\0이런식으로 저장해주죠 그러므로 저장공간을 선언할때는 항상 \0 공백부분도 생각하면서 선언해주셔야됩니다. 문자열을 선언하는 방법은 세가지가 있는데요. char a[]={'A','B','C',D','\0'}; 이런식으로 쓸경우 컴파일러가 알아서 a[5]로 최적의배열 크기를 정해줍니다. char b[]="ABCD"; 이 경우도 마찬가지로 a[5]로 최적의 배열을 저장해줍니다. 이게 더 쓰기편하겠죠? char c[5]="C#"; 우리가 크기를 미리 정..

    [C언어]#6 if, if~else, else 조건문

    [C언어]#6 if, if~else, else 조건문

    이번에 배울건 앞으로 프로그래밍을 할때 유용하게 쓰이는건데요.바로if문입니다. 만약~~이라면 {} 사이에 명령을 실행할수 있게끔 프로그래밍 하는것입니다. 사용하는방법은 간단합니다. &if문 if(조건){명령;} 1)조건에는 #4에서 연산자에 나왔던 ,=,==,!= 을 주로 사용해주게 될거에요.예를 들어 a가 10일때 if문을 실행시키고 싶다! 하면 if(a==10){} 이렇게 써주게 되겠죠.처음에는 익숙하지 않아서 ==대신 =을 쓴다던가, = 을 쓰거나 하니까 주의해주세요! 특히 =의 경우 if(a=10){}이라 쓰면 a값을 10으로 바꾸라는 명령이기때문에 오류가 뜨지않습니다. 저런거로 실수하면 찾다가 골머리 앓습니다. ㅋㅋ 2)조건을 나는 여러개를 써주고 싶은데! 하는경우가 있을거에요. 예를들어 104..

    [C언어]#5 입력받기 scanf, scanf_s 문

    [C언어]#5 입력받기 scanf, scanf_s 문

    드디어 외울게 많은 힘든 파트들이 끝났네요 이번에 배울것은 입력을 받아서 저장할수 있게해주는 함수 scanf, scanf_s 를 배워볼건데요. scanf는 Visual 2015때 저가 공부했는데 scanf_s를 쓰는걸 마이크로소프트에서 추진할때였습니다. 확인해보니 2017에서는 scanf가 특별한 설정이 없는이상 쓰지 오류가 뜨면서 쓰지 못하는것 같네요! scanf와 scanf_s와의 차이 점은 별거없습니다. scanf_s에 값을 하나더 적어줘야 하는건데요. 바로 "나는 여기에 x만큼 적어서 저장하겠어! 그이상은 필요없어!" 라고 미리 말을 해주는겁니다. scanf는 이제 쓸일은 없을것 같지만 그래도 일단은 사용법에 대해 적어 놓겠습니다.(별차이 없습니다.) scanf_s를 쓰는이유에 대해 더 자세히 알..