본문 바로가기

반응형

C

(51)
[C] scanf() 함수의 입력 형식 기호 https://docs.microsoft.com/ko-kr/cpp/c-runtime-library/format-specification-fields-scanf-and-wscanf-functions?view=msvc-160  형식 사양 필드: scanf 및 wscanf 함수자세한 정보: 사양 필드 서식 지정: scanf 및 wscanf 함수learn.microsoft.com https://docs.microsoft.com/ko-kr/cpp/c-runtime-library/scanf-type-field-characters?view=msvc-160 scanf 형식 필드 문자자세한 정보: scanf 형식 필드 문자learn.microsoft.com
[C] 제어문자 이름설명\a'삑' 하는 경고음을 출력한다.\t탭\n줄바꿈\0공백 문자\b뒤로 한칸 후진\r동일한 줄의 첫 번째 위치로 커서를 이동한다.\f출력 화면을 한 페이지 넘긴다.\\'\' 문자를 출력한다.\"큰따옴표(")를 출력한다.제어문자는 아니지만 printf() 함수에서 %를 출력하려면 %%라고 해야 출력이 된다.
[C] fopen()에 쓰이는 파일 오픈 모드 종류 ModeAccessr텍스트 모드로 읽기.w텍스트 모드로 쓰기. 파일이 없을 경우 새로 생성. 존재할 시 기존의 내용삭제 후 새로운 내용으로 대체.a텍스트 모드로 쓰기. 파일이 없을 경우 새로 생성. 존재할 시 파일의 가장 끝부분부터 이어쓰기.rb바이너리 모드로 읽기.wb바이너리 모드로 쓰기. 파일이 없을 경우 새로 생성. 존재할 시 기존의 내용 삭제 후 새로운 내용으로 대체.ab바이너리 모드로 쓰기. 파일이 없을 경우 새로 생성. 존재할 시 파일의 가장 끝부분부터 이어쓰기.r+텍스트 모드로 읽기. 쓰기가 가능.w+텍스트 모드로 읽기. 쓰기가 가능. 파일이 없을 경우 새로 생성. 존재할 시 기존의 내용 삭제 후 새로운 내용으로 대체.a+텍스트 모드로 읽기. 쓰기가 가능. 파일이 없을 경우 새로 생성. 존재..
[C] Ctrl + Z 입력을 받을 때까지 반복해서 입력 받기 #include int main(){ int no = 0; // 숫자를 입력받을 변수 선언 // 최소 값을 가려내기 위해 인트형 자료형에 입력 받을수 있는 최대값으로 초기화 int check = 2147483647; printf("값을 입력해 주세요 : "); // while문 이 한줄이 중요함 scanf("%d", &no) != EOF 이 명령어가 Ctrl + Z를 입력하면 종료되는 // 명령문 scanf는 반환형으로 int형 값을 반환하는데 Ctrl + Z를 입력 받았을 때 EOF에 해당하는 // 값을 반환하게 되어 while문 조건이 거짓이 되며 종료된다. while (scanf("%d", &no) != EOF) { fflush(stdin); if (no
[C] 소수 구하는 프로그램 아래 코드는 1부터 10만 사이의 소수를 구한다.​복잡한 알고리즘도 아니고 한번 더 생각해서 식만 조금 수정했을 뿐인데 시간 차이가 이렇게 많이 난다.​물론 내가 작성한 코드보다 더 빠른 소수 구하는 코드가 많다.​내가 말하고자 하는건 내가 코딩한 소수 구하는 코드가 빠르고 좋다가 아니라(아래 코드는 대충 막 짠 코드라 코드도 지저분하고 좋은 알고리즘에 비교하면 정말 느리다.)​한번만 더 생각해서 코딩하면 더 나은 코드를 작성할 수 있으니 평소에 코딩할 때 항상 어떻게 코딩해야 더 좋은 코드가 될지 생각하면서 코딩하는 습관을 가졌으면 좋겠다.​사용자는 0.7초는 기다리지만 14초는 기다리지 않는다.#pragma warning(disable : 4996)#include #include #include #i..
[C] 가변 인자 예제 코드 #include #include #include int add(int count, ...);int main(int argc, char *argv[]){ int add(int, ...); int sum; sum = add(2, 284, 945); printf("%d\n", sum); sum = add(5, 456, 74, 24, 826, 34); printf("%d\n", sum); system("pause"); return 0;}int add(int count, ...){ va_list list; int sum = 0; int i; va_start(list, count); for(i = 0; i
[C] 10진수를 2진수로 출력하기 출처 - C 언어 무작정 따라하기 (길벗)​비트 연산자를 사용하여 이진수를 출력하는 방법이 일반적이나 위 책에서 특이한 방법으로 이진수를 출력하는 방법이 나와있어 정리해봄.​아래 정의된 구조체처럼 하면 1비트짜리 변수를 선언할 수 있다.​이를 union으로 하여 출력할 변수와 함께 그 변수의 비트만큼의 멤버변수를 가지는 구조체를 정의​값 입력을 union.변수에 하고 union.구조체의 멤버변수를 하나하나 읽어서 출력해준다.​단순히 이진수 출력이라면 비트 연산자를 사용하여 출력하는 방법이 훨씬 간단하겠지만 특정 비트를 조작해야되는 경우라면​아래의 경우가 더 나은 방법이 될 수도 있을것 같음.#include #include #include typedef union _byte{ unsigned char by..
[C] NULL과 널문자 NULL은 아스키코드에서 0을 의미(symbol은 NUL)하고 널문자는 '\0'이다.​문자열의 끝을 알리는건 널문자('\0')이지 NULL이 아니다.​NULL은 '\0'이 아니다.​하지만 NULL도 0이고 널문자('\n')도 0이다...​NULL을 10진수로 표현하면 0이고 널문자도 10진수로 표현하면 0이다.​그렇다면 NULL과 널문자의 차이점은...?​NULL은 상수 0을 define 해놓은 것으로 그대로 사용하면 int형 또는 void*형, 즉 4바이트의 자료형이 되지만​널문자는 char형, 즉 1바이트의 자료형이다. (맞나?)​그리고 이러한 차이 때문에 구분되어 사용되어 진다.​NULL은 주로 포인터 변수를 초기화 시킬 때... 널문자는 문자열의 끝을 알릴 때...​그래서 NULL과 널문자('\n..

반응형