본문 바로가기

알고리즘-연습문제

파일의 입력과 출력 3

사용자로부터 총 다섯 개의 숫자(정수)를 입력 받아서 순서대로 파일에 저장하는
프로그램을 작성하자



사용자 삽입 이미지


흠 이건 정수를 그대로 파일에 담는건데... numeric.dat 를 열어보면 내용이 깨져있다.
과연 제대로 들어가는 건가?
확인 할려면 파일을 읽어 출력해보면 알거같고

fwrite 함수.... c언어 초보분들은 좀 어려운 함수일듯하다
이것도 엄연히 표준함수이다
잠깐 설명을 하자면 일단 선언문을 보면

size_t  fwrite(void *ptr,  size_t  size,  size_t  count,  FILE *fp);

void *가 인자로 들어가 있다.
이말은 곳 어떤 데이터 형도 받겠다는 것이다.
c++에 오버로드를 능가한 c의 오버기능..ㅡㅡ

size_t 요건 데이타 타입이다. 이것도 엄연히 표준화 되어있는 것이다.
지금 한번 찾아보겠다.. 과연 size_t 가 뭘까..(새벽 5시에 하도 심심해서..ㅋㅋ)


아 이건 엄연히 리눅스 시스템 기준인 gcc이다.
윈도우컴파일러는 다를것이다....
(검색중............)

size_t 찾는다는 것이 NULL을 찾았습니다.

우리가 C언어에 쓰는 NULL은 뭘까?
우분투에서는    /usr/include/linux/stddef.h 에 정의된 NULL

#if defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void *)0)
#endif

저도 이렇게 보는건 처음인데..ㅋㅋ
c++에서는 NULL을 0으로 정의하네요
걍 c에서는 void *0으로 정의...

다시 size_t 를 찾아서....
(검색중.................)

아놔 못찾았다.  

뭐 사실 이게 중요한게 아니다 size_t를 쓰는 이유는 말 그대로 시스템에 따라 변환 가능성이
있는 경우와 일정한 형식표현으로 본다면 요게 무슨타입인지 상관없다.
왜냐면 그냥 쓰면 되기 (ㅡㅡ) 때문이다. 이유달지말자..
우리가 사과가 왜 사과인지 고민할 필요가 있나?