C & C++ 169

[C++] 8. 이름 충돌을 방지하는 namespace

namespace DemoA { struct Stack { int top; }; } namespace DemoB { struct Stack //이미 앞에서 같은 이름으로 정의하고 있음 { int last; }; }​ [C++] 이름 출동을 방지하는 namespace C++언어는 이미 만들어진 지 30여년이 지났습니다. 이러한 역사 속에서 처음에는 없었던 문법이 새롭게 추가한 것들도 있습니다. 이렇게 새롭게 추가한 문법 중의 하나가 namespace죠. 이미 앞에서 cin과 cout을 사용하기 위해 using namespace std; 문을 사용했었죠. 여기에서 namespace 문법을 다루고 나면 왜 이러한 구문을 사용하였는지를 알 수 있을 거예요. namespace는 같은 이름을 충돌하지 않게 하는 문..

[C++] 6. 디폴트 매개 변수 7. 매개 변수 이름이 없는 스텁 매개 변수

[C++] 6. 디폴트 매개 변수 6. 디폴트 매개 변수 C++언어에서는 함수 입력 매개 변수 중에 디폴트 값을 설정할 수 있습니다. 이러한 디폴트 매개 변수는 대부분 같은 값을 전달할 때 호출하는 곳에서 인자를 전달하지 않아도 사용할 수 있게 해 줍니다. 만약 호의 면적을 구하는 함수에 반지름과 각도를 입력 매개 변수로 받게 하였을 때 각도의 디폴트 값을 2*PI로 설정한다고 가정할게요. 이와 같이 정의하면 호출할 때 반지름만 전달하면 각도는 디폴트 값을 사용하여 계산합니다. 물론 호출하는 곳에서 원하는 각도를 전달할 수도 있어요. //디폴트 매개 변수 //Program.cpp #include using namespace std; double CalculateArea(double radius, doub..

[C++] 5. 함수 중복 정의 (FUNCTION OVERLOADING)

[C++] 5. 함수 중복 정의 (FUNCTION OVERLOADING) C언어에서는 같은 이름을 갖는 함수를 정의할 수가 없죠. 하지만 C++언어에서는 같은 이름을 갖는 함수를 정의할 수 있어요. 이와 같은 문법을 함수 중복 정의 (Function Overloading)라고 불러요. C++에서는 개발자가 정의한 코드를 컴파일 과정에서도 전개합니다. 함수 중복 정의가 대표적인 컴파일 과정에 전개하는 문법이예요. C++컴파일러는 개발자가 정의한 함수 명을 입력 매개 변수 리스트에 따라 유일한 이름의 함수 명으로 결정하는 함수 코드화(부호화) 과정이 있어요. 이러한 컴파일 전개가 있어서 같은 이름의 함수를 정할 수 있어요. 예를 들어 두 개의 정수 중에 최대값을 찾는 함수 명이 GetMax라고 정의했을 때 ..

[C++] 4. 태그 명을 형식 명으로 사용

[C++] 태그 명을 형식 명으로 사용 C++언어에서는 신뢰성에 문제가 되지 않는 범위에서 사용자에게 많은 편의성을 제공하고 있어요. 특히 태그 명을 형식 명으로 사용할 수 있어서 변수 선언에 태그 명을 사용할 필요가 없어요. 태그 명은 구조체, 공용체, 열거형을 정의할 때 사용하는 struct, union, enum 과 같은 키워드예요. C언어에서는 태그 명을 형식 명으로 사용할 수 없어서 struct, union, enum 같은 키워드도 같이 사용해서 변수를 선언해야 하죠. 이러한 불편함을 덜기 위해 typedef 문을 통해 형식 명을 정의해서 사용했어요. 하지만 C++에서는 태그 명을 그대로 형식 명으로 사용할 수 있어요. //태그 명을 형식 명으로 사용 //Program.cpp #include u..

strncat 함수, strncat_s 함수 [C언어 표준 라이브러리 함수]

char * strncat ( char * dest, const char * source, size_t n ); 타겟 문자열에 부분 문자열을 합하는 함수 입력 매개 변수 리스트 dest 앞 부분의 원본 문자열이면서 합한 문자열을 설정할 버퍼 source 뒷 부분의 원본 문자열 n source 문자열에서 합할 문자 개수 반환 값 dest strncat 함수는 dest 버퍼 크기가 dest 문자 길이 + n 보다 작으면 버퍼 오버 플로우 버그가 발생합니다. C11에서는 이를 개선한 strncat_s 함수를 제공합니다. 그리고 strncat 함수에서는 문자열을 합한 맨 끝에 종료 문자를 추가합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //char * strncat ( char * dest, con..

strcat 함수, strcat_s 함수 [C언어 표준 라이브러리 함수]

char * strcat ( char * dest, const char * source ); 문자열을 합하는 함수 strcat 함수, strcat_s 함수 [C언어 표준 라이브러리 함수] 입력 매개 변수 리스트 dest 앞 부분의 원본 문자열이면서 합한 문자열을 설정할 버퍼 source 뒷 부분의 원본 문자열 반환 값 dest 만약 dest 버퍼의 크기가 dest의 문자열 길이 + source의 문자열 길이 -1 보다 작으면 버퍼 오버플로우 버그가 발생합니다. C11에서는 이를 개선한 strcat_s 함수를 제공합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //char * strcat ( char * dest, const char * source ); 문자열을 합하는 함수 #pragma war..

strncmp 함수 [C언어 표준 라이브러리 함수]

int strncmp ( const char * str1, const char * str2, size_t n); 부분 문자열을 비교하는 함수 입력 매개 변수 리스트 str1 비교 대상 문자열 str2 비교 대상 문자열 n 비교할 문자 개수 반환 값 같을 때 0, str1이 크면 양의 정수, str2가 크면 음의 정수 strncmp 함수는 사전식으로 문자열을 비교합니다. 사전식 비교란 앞에서 부터 비교하면서 차이가 있는 부분이 있으면 그 부분의 문자의 차이로 비교하는 것을 말합니다. 예를 들어 abcd와 abd를 비교하면 세번째 문자에서 차이가 발생하고 c가 d보다 작으므로 abcd가 abd보다 작다고 판단하는 것을 말합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //int strncmp ( c..

strcmp 함수 [C언어 표준 라이브러리 함수]

strcmp 함수 [C언어 표준 라이브러리 함수] int strcmp ( const char * str1, const char * str2 ); 문자열을 비교하는 함수 입력 매개 변수 리스트 str1 비교 대상 문자열 str2 비교 대상 문자열 반환 값 같을 때 0, str1이 크면 양의 정수, str2가 크면 음의 정수 strcmp 함수는 사전식으로 문자열을 비교합니다. 사전식 비교란 앞에서 부터 비교하면서 차이가 있는 부분이 있으면 그 부분의 문자의 차이로 비교하는 것을 말합니다. 예를 들어 abcd와 abd를 비교하면 세번째 문자에서 차이가 발생하고 c가 d보다 작으므로 abcd가 abd보다 작다고 판단하는 것을 말합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //int strcmp ( ..

strncpy 함수, strncpy_s 함수 [C언어 표준 라이브러리]

char * strncpy ( char * destination, const char * source, size_t n ); 부분 문자열을 복사하는 함수 입력 매개 변수 리스트 destination 문자열을 복사할 버퍼 source 복사할 원본 문자열 n 복사할 문자 개수 반환 값 destionation strncpy 함수는 n개의 문자를 복사한 뒤 맨 뒤에 종료 문자를 추가하지 않습니다. 그리고 복사할 버퍼 크기가 n 보다 작으면 버퍼 오버플로우 문제가 발생합니다. C11에서는 이러한 문제를 개선하는 strncpy_s 함수를 제공합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //char * strncpy ( char * destination, const char * source, size_t..

strcpy 함수, strcpy_s 함수 [C언어 표준 라이브러이]

strcpy 함수 [C언어 표준 라이브러이] char * strcpy ( char * dest, const char * source ); 문자열을 복사하는 함수 입력 매개 변수 리스트 dest 문자열을 복사할 버퍼 source 원본 문자열 반환 값 dest strcpy 함수에는 dest 버퍼의 크기를 전달하지 않습니다. 만약 source 문자열의 길이가 dest 버퍼의 크기-1보다 크면 버퍼 오버플로우 버그가 발생합니다. 이러한 문제를 해결하기 위해 C11에서는 strcpy_s 함수를 제공합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //char * strcpy ( char * dest, const char * source ); 문자열을 복사하는 함수 //문자열을 복사한 후 표준 출력 스트림에..

strlen 함수 [C언어 표준 라이브러리]

strlen 함수 [C언어 표준 라이브러리] size_t strlen( const char * str ); 문자열 길이를 구하는 함수 입력 매개 변수 리스트 str 문자열 반환 값 문자열 길이 문자열 길이를 구하는 strlen 함수는 거짓인 문자(널 문자, ‘\0’, 아스키 코드값 0)을 만날 때까지의 문자의 개수를 반환합니다. 한글 하나의 문자는 2개의 문자로 표현합니다. 사용 예에서는 strlen 함수를 사용하는 예제 코드를 포함하여 strlen 함수와 같은 동작을 하는 ehstrlen 함수를 볼 수 있습니다. 이처럼 라이브러리 함수의 내부를 이해하기 위해 같은 동작을 하는 함수를 만들어 보는 것도 나쁘지 않습니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //size_t strlen( con..

STRING.H [C언어 표준 라이브러리]

헤더에는 문자열에 관한 여러 가지 함수와 매크로와 형식을 제공하고 있습니다. 이 책에서는 헤더에서 제공하는 함수 중에 다음 22개 함수 사용법을 소개합니다. size_t strlen( const char * str ); 문자열 길이를 구하는 함수 char * strcpy ( char * dest, const char * source ); 문자열을 복사하는 함수 erron_t strcpy_s ( char * dest, size_t size, const char * source ); 문자열을 복사하는 함수 char * strncpy ( char * destination, const char * source, size_t n ); 부분 문자열을 복사하는 함수 errno_t strncpy_s ( char * d..

fsetpos 함수 [C언어 표준 라이브러리 함수]

int fsetpos ( FILE * fp, fpos_t * pos ); 파일 스트림의 파일 position을 설정하는 함수 입력 매개 변수 리스트 fp 파일 스트림 pos 설정할 파일 position 값이 있는 메모리 주소 반환 값 요청한 파일 position으로 설정하지 못할 때만 0이 아닌 정수 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fsetpos ( FILE * fp, fpos_t * pos ); 파일 스트림의 파일 position을 설정하는 함수 //회원 데이터를 파일에 출력한 후 닫고 찾고자 하는 순서 번호를 입력받아 회원 정보를 출력 #include #define MAX_NAME_LEN 20 typedef struct { char name[MAX_NAME_LEN + 1];..

fgetpos 함수 [C언어 표준 라이브러리 함수]

int fgetpos ( FILE * fp, fpos_t * pos ); 파일 스트림의 파일 position을 구하는 함수 입력 매개 변수 리스트 fp 파일 스트림 pos 파일 position을 읽어올 메모리 주소 반환 값 성공 시 0, 실패 시 0이 아닌 수 fpos_t 형식은 64비트 정수로 매우 큰 (2의 63승 -1 바이트) 파일에서의 파일 position을 확인할 수 있습니다. 다음의 사용 예는 4G파일을 만든 후에 파일 position을 확인하는 코드입니다. 테스트 후에 data.txt 파일을 지우세요. 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fgetpos ( FILE * fp, fpos_t * pos ); 파일 스트림의 파일 position을 구하는 함수 //커다란 파일을..

clearerr 함수 [C언어 표준 라이브러리 함수]

void clearerr(FILE * fp); 파일 스트림의 에러 플래그를 지우는 함수 입력 매개 변수 리스트 fp 파일 스트림 반환 값 없음 clearerr 함수는 error 지시자와 end of file 지시자를 지워줍니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //void clearerr ( FILE * fp ); 파일 스트림의 에러 플래그를 지우는 함수 //쓰기 모드로 파일을 열고 fgetc 호출 시 에러를 출력하고 에러를 지운 후에 다시 출력 #include int main (void) { FILE * fp; int re,no; fopen_s (&fp,"data.txt","w");//쓰기 모드로 파일 열기 if (fp==NULL) { perror ("error fopen"); retu..

perror 함수 [C언어 표준 라이브러리 함수]

void perror ( const char * str ); 에러 메시지를 출력하는 함수 입력 매개 변수 리스트 str 출력할 문자열 반환 값 없음 perror 함수는 입력 인자로 전달한 문자열 뒤에 : 과 함께 최근에 발생한 에러 메시지를 출력합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //void perror ( const char * str ); 에러 메시지를 출력하는 함수 //존재하지 않는 파일을 읽기 모드로 열었을 때 에러 메시지 출력 #include int main (void) { FILE * fp; fopen_s (&fp,"noexist.txt","r");//읽기 모드로 파일 열기 if (fp==NULL) { perror ("error fopen");//에러 메시지 출력 retu..

feof 함수 [C언어 표준 라이브러리 함수]

int feof(FILE * fp); 파일 스트림의 끝인지 테스트하는 함수 입력 매개 변수 리스트 fp 파일 스트림 반환 값 파일 스트림의 end of file 지시자가 설정 상태이면 0이 아닌 값 사용 예 //C언어 표준 라이브러리 함수 가이드 //int feof ( FILE * fp ); 파일 스트림의 끝인지 테스트하는 함수 //파일의 내용을 라인 번호를 추가하여 출력 #include int main (void) { FILE * fp; int ch; int line_no = 0; fopen_s(&fp, "input.txt","rt");//읽기 모드로 파일 열기 if (fp==NULL) { perror ("error fopen"); return 0; } line_no++; printf("%4d: ",l..

ferror 함수 [C언어 표준 라이브러리 함수]

int ferror ( FILE *fp ); 파일 스트림에 에러가 발생했는지 테스트하는 함수 입력 매개 변수 리스트 fp 파일 스트림 반환 값 파일 스트림에 에러 지시자가 설정 상태이면 0이 아닌 값 사용 예 //C언어 표준 라이브러리 함수 가이드 //int ferror ( FILE *fp ); 파일 스트림에 에러가 발생했는지 테스트하는 함수 //쓰기 모드로 파일을 열고 fgetc 함수 호출 시 에러 값 확인 #include int main (void) { FILE * fp; int re,no; fopen_s (&fp,"data.txt","w"); //쓰기 모드로 파일 열기 if (fp==NULL) { perror ("error fopen"); return 0; } re = fgetc(fp);//출력 스..

fseek 함수 [C언어 표준 라이브러리 함수]

fseek 함수 [C언어 표준 라이브러리 함수] int fseek ( FILE *fp, long int offset, int whence ); 파일 스트림의 파일 position을 설정하는 함수 입력 매개 변수 리스트 fp 파일 스트림 offset whence에서 이동할 상대적 거리 whence SEEK_SET(시작 position), SEEK_CUR(현재 positon), SEEK_END(파일 끝) 반환 값 요청에 맞게 이동하지 못할 때만 0이 아닌 정수 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fseek ( FILE *fp, long int offset, int origin ); 파일 스트림의 파일 position을 설정하는 함수 //회원 데이터를 파일에 출력 //찾고자 하는 순서 ..

ftell 함수 [C언어 표준 라이브러리 함수]

long ftell ( FILE * fp ); 파일 스트림의 offset을 가져오는 함수 입력 매개 변수 리스트 fp 파일 스트림 반환 값 파일 스트림의 파일 position의 현재 값, 실패 시 -1 사용 예 //C언어 표준 라이브러리 함수 가이드 //long ftell ( FILE * fp ); 파일 스트림의 offset을 가져오는 함수 //파일에 회원 데이터를 출력하고 다시 파일을 열어 파일의 크기를 확인 #include #define MAX_NAME_LEN 20 typedef struct{ char name[MAX_NAME_LEN+1]; int age; }Member; #define MAX_MEMBERS 10 int main (void) { FILE * fp; Member members[MAX_M..

fread 함수 [C언어 표준 라이브러리 함수]

fread 함수 [C언어 표준 라이브러리 함수] size_t fread ( void * base, size_t size, size_t count, FILE * fp); 파일 스트림에서 데이터를 읽는 함수 입력 매개 변수 리스트 base 데이터를 읽어올 버퍼 size 읽어올 데이터 하나의 크기 count 읽어올 데이터 개수 fp 입력 파일 스트림 반환 값 읽어온 데이터 개수 fread 함수는 요청한 데이터 개수보다 반환 값이 작다고 오류가 아니며 파일에 데이터를 모두 읽어온 것입니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //size_t fwrite ( const void * base, size_t size, size_t count, FILE * fp); 파일 스트림에 데이터를 쓰는 함수 //회..

fwrite 함수 [C언어 표준 라이브러리 함수]

fwrite 함수 [C언어 표준 라이브러리 함수] size_t fwrite ( const void * base, size_t size, size_t count, FILE * fp); 파일 스트림에 데이터를 쓰는 함수 입력 매개 변수 리스트 base 기록할 데이터가 있는 주소 size 기록할 데이터 하나의 크기 count 기록할 데이터 개수 fp 출력 파일 스트림 반환 값 성공하면 쓰기 요청한 count, count 보다 작은 값을 반환하면 에러 fwrie 함수는 메모리에 있는 내용을 그대로 파일에 덤프하는 것입니다. 따라서 메모장과 같은 텍스트 편집기로 확인하면 글자가 깨진 것처럼 보입니다. 메모장과 같은 프로그램으로 출력 파일을 열어서 확인하였을 때 글자가 깨졌다고 문제가 있는 것이 아닙니다. 사용 예..

fflush 함수 [C언어 표준 라이브러리 함수]

int fflush ( FILE *fp); 파일 스트림 버퍼를 비우는 함수 입력 매개 변수 리스트 fp 파일 스트림 반환 값 성공 시 0, 에러 시 EOF 출력 스트림 버퍼에 남아있는 내용을 출력 스트림에 출력하는 동작을 수행합니다. 하지만 입력 스트림에서 어떻게 동작해야 하는지는 표준 문서에서 정의하지 않았습니다. scanf 함수처럼 포멧에 맞게 입력을 받을 때 최종 사용자의 입력 내용이 포멧 문자열보다 더 많은 내용을 포함하고 있으면 버퍼에 처리하지 않은 데이커가 남습니다. 이처럼 스트림 버퍼의 내용을 비울 때 fflush 함수를 사용합니다. 하지만 C 표준 문서를 보면 구체적인 행위를 정의하지 않았습니다. 실제 컴파일러에 따라 처리하는 방식이 다릅니다. 저자가 테스트 해 본 Microsoft Vis..

vprintf 함수 [C언어 표준 라이브러리 함수]

int vprintf ( const char * format, va_list arg ); 버퍼에 포멧을 지정하여 가변 인자를 출력하는 함수 입력 매개 변수 리스트 format 포멧 문자열 arg 가변 인자 반환 값 성공 시 출력한 문자 개수, 실패 시 음수 사용 예 //C언어 표준 라이브러리 함수 가이드 //int vprintf ( const char * format, va_list arg ); 버퍼에 포멧을 지정하여 가변 인자를 출력하는 함수 //메시지와 가변 인자 리스트를 받아 표준 출력 스트림에 출력 #include #include //가변 인자를 받아 표준 스트림에 출력하는 함수 void MyPrint(const char *msg, const char * format, ...) { va_list ..

sscanf 함수, sscanf_s 함수 [C언어 표준라이브러리 함수]

sscanf 함수, sscanf_s 함수 [C언어 표준라이브러리 함수] int sscanf (const char * buffer ,const char *format,…); 버퍼에서 포멧을 지정하여 읽어오는 함수 입력 매개 변수 리스트 buffer 소스 문자열 format 포멧 문자열 … 가변 인자 리스트 반환 값 변환 성공한 개수 소스 문자열에 있는 내용으로 설정할 버퍼의 크기가 작으면 버퍼 오버플로우 현상이 발생할 수 있습니다. C11에서는 이를 개선한 sscanf_s를 제공하고 있습니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //int sscanf (const char * buffer ,const char *format,...); 버퍼에서 포멧을 지정하여 읽어오는 함수 //문자열의 내용을 ..

sprintf 함수, sprintf_s 함수 [C언어 표준 라이브러리 함수]

sprintf 함수 [C언어 표준 라이브러리 함수] int sprintf ( char * buffer, const char * format, … ); 버퍼에 포멧을 지정하여 출력하는 함수 입력 매개 변수 리스트 buffer 출력할 버퍼 format 포멧 문자열 … 가변 인자 리스트 반환 값 버퍼에 출력한 문자 개수 버퍼의 크기를 전달하지 않아서 sprintf 함수 내부에서는 버퍼의 크기를 알 수가 없습니다. 버퍼에 출력할 내용이 버퍼 크기보다 크면 버퍼 오버플로우 문제가 발생합니다. C11에서는 이러한 문제를 개선한 sprintf_s 함수를 제공합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //int sprintf ( char * buffer, const char * format, ... );..

fscanf 함수, fscanf_s 함수 [C언어 표준 라이브러리 함수]

int fscanf (FILE * fp ,const char *format,…); 파일 스트림에 포멧을 지정하여 읽는 함수 입력 매개 변수 리스트 fp 입력 파일 스트림 format 포멧 문자열 … 가변 인자 리스트 반환 값 성공 시 변환 성공 개수, 오류 시 EOF fscanf 함수도 scanf 함수처럼 문자열을 읽어올 때 버퍼 크기를 전달하지 않아 버퍼 오버플로우 문제가 발생할 수 있습니다. C11에서는 이를 개선한 fscanf_s를 제공합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fscanf (FILE * fp ,const char *format,...); 파일 스트림에 포멧을 지정하여 읽는 함수 //회원 정보를 파일에 쓴 후에 다시 읽어와서 출력 #pragma warning..

fgets 함수 [C언어 표준 라이브러리 함수]

fgets 함수 [C언어 표준 라이브러리 함수] char *fgets(char * buffer, int max,FILE * stream); 파일 스트림의 버퍼에서 문자열을 읽는 함수 입력 매개 변수 리스트 buffer 문자열을 기록할 버퍼 max 읽어올 문자열을 구성하는 문자 최대 개수 -1 stream 입력 파일 스트림 반환 값 성공 시 buffer, 실패 하거나 파일의 끝을 만나면 NULL 개행 문자를 만나거나 max-1 개를 읽으면 마지막에 종료 문자를 추가합니다. gets에서는 개행 문자를 지우고 종료 문자를 추가하지만 fgets에서는 개행 문자도 그대로 읽습니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //char *fgets(char * buffer, int max, FILE * st..

fgetc 함수, getc 매크로 함수 [C언어 표준 라이브러리 함수]

fgetc 함수 [C언어 표준 라이브러리 함수] int fgetc(FILE *fp); 파일 스트림의 버퍼에서 맨 앞의 문자의 ASCII 코드 값을 반환하는 함수 입력 매개 변수 리스트 fp 입력 파일 스트림 반환 값 성공 시 읽은 문자, 실패 시 EOF를 반환하고 error를 설정 fgetc 함수 호출 결과가 EOF일 때는 읽은 문자가 파일의 끝을 의미하는 EOF이거나 읽기 오류일 때입니다. 따라서 EOF를 반환했다고 반드시 읽기 실패가 아닙니다. 읽기 실패일 때는 error 플래그를 설정하므로 ferror로 확인해야 에러인지 아닌지 판단할 수 있습니다. 사용 예 사용 예 //C언어 표준 라이브러리 함수 가이드 // int fgetc(FILE *fp); 파일 스트림의 버퍼에서 맨 앞의 문자의 ASCII ..

fprintf 함수 [C언어 표준 라이브러리 함수]

fprintf 함수 [C언어 표준 라이브러리 함수] int fprintf(FILE *fp, const char * format, …); 파일 스트림에 포멧을 지정하여 출력하는 함수 입력 매개 변수 리스트 fp 출력 파일 스트림 format 포멧 문자열, 출력 포멧은 printf 함수와 같습니다. … 가변 인자 리스트 반환 값 성공 시 출력 문자 개수, 실패 시 음수 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fprintf(FILE *fp, const char * format, ...); 파일 스트림에 포멧을 지정하여 출력하는 함수 //다양한 포멧 지정을 사용하여 파일에 출력 #pragma warning(disable:4477) #include #include #include int mai..