3 분 소요

#include

#define DATA_LEN 1
#define MAX_DATA_LEN 100
#define MAX_PATH 2056 
int main()  
{  
    FILE* f1 = fopen(“file1.txt”, “w”);  
    FILE* f2 = fopen(“file2.txt”, “w”);  
 
    char* data_1 = “HELLO WORLD………………………………….”;  
    char* data_2 = “HELLO WORLD………………………………….”;
    fwrite(data_1, DATA_LEN, MAX_DATA_LEN, f1);

 //f1 파일에 DATA_LEN크기 기준으로 MAX_DATA_LEN 만큼 data_1에 있는 내용을 써라.

    fprintf(f2, data_2);  
 //f2 파일에 data를 \0가 나올때까지 출력해라.

 fclose(f1);
 fclose(f2);
 
 //remove(“file2.txt”); //file 지우기.
    return 0;  
}

#if 0
   encryption
   decrypt〔〕 vt. <암호를> 해독[번역]하다(decipher)\    decrption n. 【컴퓨터】 해독

  1. encryption되어 있던 파일을 decryption해서 file로 저장을 한다.
       이때 file을 buffer에 넣고
       fopen -> fwrite -> fclose 를 하여서 만든다.

  2. 만든 파일을 다운로드 한다.
       - 이때 파일 루트와 파일의 이름을 알아야 한다. [파일이름은 1번에서 만드므로 안다는 가정]
       - file root 읽어 오는 방법은 아래와 같군…
       
       - MFC에서 현재 디렉토리를 읽어오는 방법.
     char szPath[MAX_PATH];
     GetCurrentDirectory(sizeof(szPath),szPath);

  3. 다운로드 후 만든 파일을 지운다.
       remove함수를 이용해서 지운다.

ex1)
C:\My Doucument\FileName\study문서화.txt 에서 study문서화.txt 부분이름 따기
CString strFile;
strFile = strPath.Right(strPath.GetLength() - (strPath.ReverseFind(‘\’)+1);

ex2)
현재 디렉토리 “./” -> fopen(“./ccc/practice.txt”, “w”);
위에 디렉토리 “../” -> fopen(“../ccc/practice.txt”, “w”);

ex3) directory를 만들어서 file 만들기.

mkdir() 함수를 사용해서 디렉토리를 생성하시면 됩니다.

만약 이 함수가 0보다 작은 값을 리턴하면,

errno라는 전역 변수의 값을 점검하고 EEXIST라는 값이라면 이미 동일한 이름의 디렉토리가 존재하는 것이므로 chdir()로 디렉토리를 이동해서 다시 그 하위의 디렉토리를 생성하시면 됩니다.

getcwd()를 호출하시면 현재 디렉토리를 얻을 수 있습니다.

이 함수들을 쓰실려면 direct.h와 stdlib.h를 인크루드하세요.

//////////////////////////////////////////////

FindFirst(), FindNext()는 API 함수입니다.

VC++을 쓰신다면 사용할 수는 있지만 윈도우용 API입니다.

예제를 간단히 만들어보면,

아래의 예제를 실행하시고,

c:\temp\abcd\

이렇게 입력하시면 드라이브 이동, 디렉토리 이동을 거쳐서,

해당 디렉토리에 test.txt라는 파일을 만들게 됩니다.

입력시에 제일 끝에도 \를 붙여줘야 함을 잊지 마세요.

그리고 에러 처리에 대해서는 하나도 안했습니다.

적절한 에러처리를 직접 구현해보시기 바랍니다.

#include \ #include \ #include \ #include

void main()
{
      int nCurDir;
      char path[100], cur[100], temp[100], *start, *end;

      printf(“Full path(lower case) : “);
      scanf(“%s”, path);

      /* 드라이브 점검 및 이동 */
      nCurDir = _getdrive();
      if(*path != (nCurDir - 1 + ‘a’))
            _chdrive(*path - ‘a’ + 1);

      /* 드라이브 루트로 이동 */
      sprintf(temp, “%c:\”, *path);
      chdir(temp);

      start = strstr(path, “:\”);
      start += 2;

      strcpy(cur, temp);

      /* 하위 디렉토리 이동 */
      for(end = strstr(start, “\”); end != NULL; end = strstr(start, “\”))
      {
            strncpy(temp, start, end - start);
            end - start] = 0x00;

            mkdir(temp);
            chdir(temp);

            strcat(cur, “\”);
            strcat(cur, temp);

            start = end + 1;
      }

      FILE *fp = fopen(“test.txt”, “wt”);
      fclose(fp);
}

질문자인사 다소 에러가 좀 있네요.. ^^ 답변주셔서 감사합니다. ^^ 꾸벅

mkdir() 함수를 사용해서 디렉토리를 생성하시면 됩니다.

만약 이 함수가 0보다 작은 값을 리턴하면,

errno라는 전역 변수의 값을 점검하고 EEXIST라는 값이라면 이미 동일한 이름의 디렉토리가 존재하는 것이므로 chdir()로 디렉토리를 이동해서 다시 그 하위의 디렉토리를 생성하시면 됩니다.

getcwd()를 호출하시면 현재 디렉토리를 얻을 수 있습니다.

이 함수들을 쓰실려면 direct.h와 stdlib.h를 인크루드하세요.

//////////////////////////////////////////////

FindFirst(), FindNext()는 API 함수입니다.

VC++을 쓰신다면 사용할 수는 있지만 윈도우용 API입니다.

예제를 간단히 만들어보면,

아래의 예제를 실행하시고,

c:\temp\abcd\

이렇게 입력하시면 드라이브 이동, 디렉토리 이동을 거쳐서,

해당 디렉토리에 test.txt라는 파일을 만들게 됩니다.

입력시에 제일 끝에도 \를 붙여줘야 함을 잊지 마세요.

그리고 에러 처리에 대해서는 하나도 안했습니다.

적절한 에러처리를 직접 구현해보시기 바랍니다.

#include \ #include \ #include \ #include

void main()
{
      int nCurDir;
      char path[100], cur[100], temp[100], *start, *end;

      printf(“Full path(lower case) : “);
      scanf(“%s”, path);

      /* 드라이브 점검 및 이동 */
      nCurDir = _getdrive();
      if(*path != (nCurDir - 1 + ‘a’))
            _chdrive(*path - ‘a’ + 1);

      /* 드라이브 루트로 이동 */
      sprintf(temp, “%c:\”, *path);
      chdir(temp);

      start = strstr(path, “:\”);
      start += 2;

      strcpy(cur, temp);

      /* 하위 디렉토리 이동 */
      for(end = strstr(start, “\”); end != NULL; end = strstr(start, “\”))
      {
            strncpy(temp, start, end - start);
            end - start] = 0x00;

            mkdir(temp);
            chdir(temp);

            strcat(cur, “\”);
            strcat(cur, temp);

            start = end + 1;
      }

      FILE *fp = fopen(“test.txt”, “wt”);
      fclose(fp);
}
—————————————————————————————-
#endif