시간 차이를 알려주는 함수 (GetTickCount) - Windows.h


DWORD GetTickCount(void)

DWORD형의 시간 틱 카운트를 리턴합니다. (1틱당 0.001초)

원도우즈는 부팅된 후 1초에 1000씩 틱 카운트를 증가시키는데 이 함수를 사용하면 부팅된 지 얼마나 경과 했는지를 알 수 있습니다. 주로 두 사건 사이의 경과 시간을 구하는데 쓰며(예: 테트리스 블럭 내려오는 시간) 카운트는 32비트 값이므로 최대 49.7일간의 카운트를 유지할 수 있습니다.

DWORD prevtime; //전 시간을 기억
void TimeChecks()
{
    if((GetTickCount() - prevtime) == 970)
    tetrisblock_y--; //테트리스 블럭을 한칸 떨어뜨림
}


파일의 데이터 읽는 함수 (fread) - stdio.h


size_t fread((void*)buffer, size_t size size_t count, FILE* stream)

성공 시 반환 값 size_t는 파일에서 읽은 개수, 실패, 또는 파일의 끝에 도달 시 size_t  0보다 작은값 반환합니다.

두 번째 전달 인자와 세번째 전달 인자의 곱의 바이트크기만큼 데이터를 읽어서 첫번째 전달 인자인 buffer에 저장합니다.

int map[10][10];
fread((void*)map, sizeof(int), 100, mapdata); //mapdata에 있던 데이터를 map[10][10]에다 저장합니다.
typedef struct Structure{
    int x;
    int y;
} Structure;
fread((void*)&Structure, sizeof(Structure), 1, mapdata); //mapdata에 있던 데이터를 Structure에다 저장합니다.
/* 구조체 변수의 데이터를 통째로 바이너리 형태로 저장할 수 있는 이유는, 구조체 변수의 데이터를 통째로 바이너리 형태로 읽어들이기 때문입니다. */


파일의 데이터를 쓰는 함수 (fwrite) - stdio.h


size_t fwrite((void*)buffer, size_t sizem size_t count, FILE* stream)

성공 시 반환 값 size_t는 파일에 작성한 개수, 실패할 시 size_t  0보다 작은값 반환합니다.

두 번째 전달인자와 세번째 전달인자의 곱의 바이트크기만큼 데이터를 읽어서 stream에 저장합니다.

int number[10] = {1, 2, 3, 4, 5, 6, 7 ,8, 9, 10};
fwrite((void*)number, sizeof(int), 10, mapdata); //number[10]에 있던 데이터를 mapdata에다 저장합니다.
typedef struct Structure{
    int x;
    int y;
} Structure;
fwrite((void*)&Structure, sizeof(Structure), 1, mapdata); //Structure에 있던 데이터를 mapdata에다 저장합니다.
/* 구조체 변수의 데이터를 통째로 바이너리 형태로 저장할 수 있는 이유는, 구조체 변수의 데이터를 통째로 바이너리 형태로 읽어들이기 때문입니다. */


examples


#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *fp;
    /*creating a structure to store the particulars of the students from the file Doc1.txt*/
    struct student {
        char name[20];
        int id;
        int age;
        float marks;
        };
    struct student s;

    fp=fopen("E://Doc2.dat","rb");//the new file from which data is read
    if(fp==NULL) {
        printf("Cannot open file");
        exit(1);
    }
  /*reading the data from the file using fread()*/
    while(fread(&s,sizeof(s),1,fp)==1) {
        printf("%s %d %d %f ",&s.name,&s.id,&s.age,&s.marks);
        printf("\n");
    }
    fclose(fp);
    return 0;
}