336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. io.h, sys/stat.h 를 포함 합니다.


2. 파일을 보호하거나 사용해야 할때 이용합니다.


3. 원형 : int _chmod (const char* filename, int pmode);


4. 모드 : 

- _S_IREAD 읽기 전용 모드

- _S_IWRITE 일반 모드




소스코드 : main.c

#include<stdio.h>

#include<io.h>

#include<sys/stat.h>


int main(void)

{

char *filePath = "C:\\Users\\junmo\\Desktop\\300\\120\\file.txt";

FILE *fp = NULL;


fopen_s(&fp, filePath, "w+" );//파일을 생성


if (fp != NULL)//파일 생성되었다면

{

fclose(fp);//파일 닫기

}


//속성 값 변경

if (_chmod(filePath, _S_IREAD) != 0)

{

perror("파일 읽기 모드 설정 실패");

}

else

{

puts("읽기 모드 설정");

}



system("pause");

return 0;

}




결과 :


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. stdio.h 에 포함되어 있다.


2. 원형 : int rename(const char *oldname, const char *newname);


3. path와 이름을 같이 사용 해야합니다.


4. 0을 리턴할 경우 정상적으로 이름이 변경된 것입니다.




소스코드 : main.c


#include<stdio.h>

#include<io.h>

int main(void)

{

FILE *fp = NULL;

char *oldName = "C:\\Users\\junmo\\Desktop\\300\\119\\file.txt";

char *newName = "C:\\Users\\junmo\\Desktop\\300\\119\\test.txt";


fopen_s(&fp, oldName, "w+");


if (fp == NULL)

{

perror("C:\\Users\\junmo\\Desktop\\300\\119\\file.txt");

}

else

{

fclose(fp);


if (rename(oldName, newName))

{

perror("C:\\Users\\junmo\\Desktop\\300\\119\\file.txt");

}

else

{

if (_access(newName, 0))

{

puts("test.txt 파일이 존재 하지 않습니다.");

}

else

{

puts("test.txt 파일이 존재 합니다");

}

}


}


system("pause");

return 0;

}




결과 :



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. 파일이 존재 유무를 확인 합니다.


2. io.h 에 포함되어 있습니다.


3. 원형 : int _access(const char * path, int mode);


4. 반환 값은 0이 아니면 존재 하지 않습니다.


5. mode  

- 0 : 파일 및 디렉터리가 존재하는지 검사하는 경우.

- 2 : 파일을 쓰기 위해 개방할 수 있는지 검사하는 경우.

- 4 : 파일을 읽기 위해 개방할 수 있는지 검사하는 경우.

- 6 : 파일을 읽기 및 쓰기 위해 개방할 수 있는지 검사하는 경우.




소스코드 : main.c


#include <stdio.h>

#include<io.h>


int main(void)

{

char *path = "C:\\Users\\junmo\\Desktop\\300\\118\\main.c";


if (_access(path, 0) == 0)

{

printf("경로 : %s \n파일이 존재 합니다.\n", path);

}


system("pause");

return 0;

}




결과:



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. 원형 : char* tmpnam(char *string)


2. 임시 파일 : 어떤 프로그램은 실행되는 동안 하나 이상의 임시 파일을 사용합니다. 임시 파일은 프로그램에 의해서 생성되고, 프로그램이 실행되는 동안 다른 목적으로 사용되다가 프로그램이 종료 되기 전에 삭제 되는 파일입니다. 임시 파일을 생성 할때에는 나중에 삭제할 것이므로 파일의 이름에 대해서는 신경쓰지 읺습니다. 그러나 이미 사용중이 아닌 파일의 이름을 사용해야 합니다. C언어에서는 존재하는 어떤 파일과도 충돌하지 않는 파일의 이름을 생성하는 tmpnam()함수가 사용됩니다.


3. visual studio 10 이상 부터는 전처리기에 _CRT_SECURE_NO_WARNINGS; 를 추가 해줘야 사용 할수 있습니다.




소스코드 :


#include<stdio.h>


int main(void)

{

int i  = 0;

char buffer[100] = { 0, };

char* path = NULL;


for (i = 0; i < 10; i++)

{

tmpnam(buffer);

puts(buffer);

}


for (i = 0; i < 10; i++)

{

path = _tempnam("", "test");

puts(path);

}


system("pause");

return 0;

}



결과:





336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. 파일 개방시 실패 이유를 출력 하여 줍니다.


2. 원형 : void perror(const char* string); 

-string 값에 파일 개방 경로를 넣어 주면 유용할수 있습니다.




소스코드 : main.c


#include <stdio.h>


int main(void)

{

FILE *fp;

int ch;


fopen_s(&fp, "C:\\Users\\junmo\\Desktop\\300\\116\\file.txt", "r");


if (fp == NULL)

{

perror("C:\\Users\\junmo\\Desktop\\300\\116\\file.txt, 파일 읽기 모드 실패");

}

else

{

fclose(fp);

}



system("pause");

return 0;

}




결과 :



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. 파일을 읽거나 쓸 때 에러가 발생 했는지 유무를 검사합니다.


2. 원형 : int ferror(FILE *stream)



소스코드 : main.c


#include<stdio.h>


int main(void)

{

FILE *fp;


int ch;


fopen_s(&fp, "C:\\Users\\junmo\\Desktop\\300\\115\\file.txt", "w+");


if (fp == NULL)

{

puts("쓰기 모드 파일 생성 실패");

}

else

{

fprintf(fp, "%s", "this is text file");


fclose(fp);

}


fopen_s(&fp, "C:\\Users\\junmo\\Desktop\\300\\115\\file.txt", "r");


if (fp == NULL)

{

puts("읽기 모드 파일 생성 실패");

}

else

{

while (!feof(fp))

{

ch = fgetc(fp);

if (ferror(fp))

{

puts("파일 읽기 중 에러가 발생 하였습니다.");

}

else

{

printf("읽은 문자 : %c \n", ch);

}

}


fclose(fp);

}


system("pause");

return 0;

}




결과


336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 :


1. 파일 닫기  함수 원형과 설명 : int fclose(FILE *stream)

-파일 fopen함수를 사용하여 메모리 할당 했다면  fclose 로 할당된 메모리를 해제 해준다.

-현재 실행중인 프로그램이 개방한 여러개의 파일을 한 번에 모두 닫으려면 fcloseall() 함수를 사용 할 수 있다.


2. 파일 끝을 체크하는 함수 원형 : int feof(FILE *stream)

-파일끝에 도달하지 않으면 0을 반환.

-파일끝에 도달하면 0이 아닌 값을 반환.



소스코드 : main.c


#include<stdio.h>


int main(void)

{

FILE *fp;

int ch;


//파일 만들어 쓰기 모드로 열어라

fopen_s(&fp,"C:\\Users\\junmo\\Desktop\\300\\114\\file.txt", "w+");


if (fp) // 파일 만들어 쓰기로 열렸다면 

{

fprintf_s(fp, "%s", "This is Test File"); // 텍스트 입력

if (fp) //파일이 있다면 

{

fclose(fp); // 파일을 닫어라.

}


fopen_s(&fp, "C:\\Users\\junmo\\Desktop\\300\\114\\file.txt", "r"); //파일 읽기 모드로 열어라


if (fp)//파일 읽기 모드로 열기 성공했다면

{

while (!feof(fp)) // 파일의 끝에 도달하지 않았다면

{

ch = fgetc(fp);// 문자 하나를 가저와 ch에 값을 복사 한뒤


printf_s("read character : %c \n", ch); // 화면에 출력한다.

}


if (fp) //파일이 열려 있다면

{

fclose(fp);//파일을 닫어라.

}

}


}


system("pause"); // 시스템 대기


return 0;

}


결과 :



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

파일 : 


shooting-debug.7z



Classes.7z








제작 및 학습 기간 :  2017. 10.01 - 2017.10.06


주요 기능 : 


1.미사일 발사.


2. 미사일 충돌.


3. 아이템 효과


4. 적기 등장.


5. 충돌 체크


6.점수 카운팅


7. 다시 시작 기능




'Portfolio' 카테고리의 다른 글

2D Shooting Game  (0) 2017.09.28
Auto Tag  (0) 2017.09.26
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1부터 N 까지의 합을 루프문을 사용하지 않고  N을 인자 값으로 받아 리턴하는 함수.


int sum (int N)

{

return (N * (N + 1)) >> 1;

}



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

file :


Game_shooting.zip



SampleSource_TabShooting.7z









제작 기간 :  2017. 9.24 - 2017.9.28 


주요 기능 : 


1.미사일 발사.


2. 미사일 충돌.


3. xml  parsing.


4. 적기 등장.


5. 충돌 체크



'Portfolio' 카테고리의 다른 글

Cocos2DX - 2D Shooting Game  (0) 2017.10.23
Auto Tag  (0) 2017.09.26

+ Recent posts