본문 바로가기

c9

C/C++ memset() 메모리 블록을 채우는 함수 #include void *memset(void *dest, int c, size_t count); memset() 함수는 dest 포인터가 가리키는 곳부터 count 바이트만큼 값 c로 채운다. 값 c는 부호없는 문자(unsigned character)로 변환된다. 매개변수 void *dest : 채울 메모리 블록에 대한 포인터 int c : 설정할 값, 넘겨지는 값은 int이지만 부호없는 문자로 변환되어 메모리 블록에 채워진다 size_t count : 값으로 채워질 바이트(byte)의 수 반환값 dest에 대한 포인터를 반환 코드 예시 #include #include int main(void) { char buffer[256]; char *string; memset(buffer, 0, sizeof(.. 2021. 7. 4.
C/C++ fgets() 문자열 읽기 함수 #include char *fgets(char *string, int n, FILE *stream); fgets() 함수는 stream에서 문자열을 읽는다. 문자열을 읽을 때, 첫 번째 개행 문자를 포함하는 곳까지 읽거나, stream의 끝까지 읽거나, $n-1$개의 문자를 읽는다. 읽은 문자열을 string에 저장하고 끝에 \0을 추가한다. $n$이 1이면 빈 string이 된다. 매개변수 char *string : stream에서 읽은 문자열을 복사해 저장할 문자 배열에 대한 포인터 int n : string에 복사될 최대 문자 수 FILE *stream : FILE 객체에 대한 포인터, 인자로 stdin을 사용해 표준 입력(standard input)으로 부터 입력 받을 수 있다 반환값 함수 호출이.. 2021. 7. 4.
C/C++ gets() 행 읽기 함수 #include char *gets(char *buffer); gets() 함수는 표준 입력 스트림 stdin으로 행을 읽고 buffer에 저장한다. 함수가 행을 읽은 경우 개행 문자 \n을 null 문자 \0으로 대체한다. gets()를 사용하지 말고, fgets()를 사용하자. gets() 함수는 2011 standard에서 deprecated 되었고, 2014 standard에서 제거되었다. gets() 함수를 사용하는 것이 버퍼 오버플로우를 발생시킬 수 있는 위험이 있기 때문이다. gcc를 이용해 컴파일 할 경우 다음과 같은 경고 메시지가 나타난다: warning: the `gets' function is dangerous and should not be used. 반환값 함수 호출이 성공한 경우.. 2021. 7. 4.
C/C++ fprintf() 스트림에 형식 문자열 쓰기 #include int fprintf(FILE *stream, const char *format-string, argument-list); 형식 문자열 format-string을 넘겨 받아, 출력 stream에 문자열을 쓴다. 이때 출력 문자열과 argument-list는 printf() 함수와 같은 형식이다. 매개변수 FILE *stream : 형식 문자열을 쓸 파일 포인터 const char *format-string : 형식 문자열 argument-list : 형식 문자열에 사용할 인자 반환값 함수 호출이 성공한 경우 쓰여진 문자의 개수가 출력, 에러가 발생한 경우 음수가 반환 코드 예시 #include int main(void) { int i, j; FILE *stream = fopen("mydi.. 2021. 7. 4.
C++ enum class와 enum C++의 enumeration에는 크게 enum class와 enum이 있다. enum class는 scoped enum이라 하며, C와의 호환을 위해 unscoped enum인 enum이 있다. user-defined type이다. enum class는 ::을 이용해 값을 가져온다. enum class가 더 안전하다. enum class Vehicle { Car, Bike, Truck }; Fruit suv_vehicle = Vehicle::Car; #include enum class Race { Dinan, Teklan, Ivyn, Moiran, Camite, Julian, Aidan }; int main() { Race race = Race::Teklan; switch (race) { case Ra.. 2021. 6. 10.
C/C++ printf 함수에서 실수 소수점 자리와 너비를 지정하는 방법 | 숫자 정렬해서 출력하기, 소수점 아래 자리수 지정하기 printf 함수에서 숫자 출력 형식 지정하기 printf함수를 이용하여 숫자를 출력할 때 형식을 설정해 줄 수 있다. #include int main() { double d1 = 3.14159 double d2 = 17.890 double d3 = 4123.45 printf("%10.6lf", d1); printf("%10.6lf", d2); printf("%10.6lf", d3); return 0; }위와 같이 소스 코드를 작성한다. printf함수에서 %4.6lf 형식 지정자 부분에 주목하자. % 뒷 부분에 숫자를 입력하여 자릿수를 결정할 수 있다. . 점을 기준으로 앞쪽은 실수의 자릿수, 뒷쪽은 소수점의 자릿수를 결정한다. 위의 예에서는 실수를 10자리의 수로 표현하고, 소수점 아래 6자리 까지 .. 2019. 4. 2.
C 언어에서 #include <stdio.h>는 무슨 의미일까? 부등호와 따옴표의 차이 C 언어의 시작 #include C 언어 프로그래밍을 시작하면 먼저 #include 를 첫 줄에 써준다.간단하게 말하면 이는 printf 함수를 사용할 수 있게 한다. 모니터에 출력하기 위한 printf 함수도 어딘가에 정의되어 있어야한다.하늘에서 뚝 떨어져서 사용할 수 있는 함수가 아니다.printf 함수가 정의되어 있는 파일이 stdio.h 파일이다.이 printf 함수를 사용하기 위해 stdio.h 파일을 포함(include)한다는 의미이다.(stdio는 standard input output, 표준 입력 출력을 의미한다.) #include 와 "abc.h" : 부등호와 큰 따옴표의 차이 #include #include "glaux.h" 부등호 는 INCLUDE 환경변수에 정의된 디렉토리(폴더)에서.. 2018. 12. 15.