2013-10-07 4 views
1

루프에서 실행되는이 행을 작성하고 루프 카운터 k를 사용하여 파일 이름을 지정하려면 어떻게합니까?루프 카운터가있는 파일 이름 지정

int k; 
for(k = 0; k < 10; k++) 
    fopen("/home/ubuntu/Desktop/" + k + ".txt", "w"); // java-like code 

또한 데스크탑을 사용하지 않고 로컬 디렉토리에 파일을 저장할 폴더를 어떻게 만듭니 니 까?

+0

로컬 폴더를 만들기 위해'mkdir'을 사용할 수 있습니다 . http://stackoverflow.com/questions/7430248/how-can-i-create-new-folder-using-c-language – lurker

답변

1

귀하의 질문에 두 부분이 있습니다 : 디렉토리를 만들고 번호가 매겨진 파일을 작성하십시오. 보십시오 (디렉토리 보호가 명시 적으로 설정되도록 올바른 헤더가 포함되어 있는지, 업데이트하고 다음이 열리기 전에 하나 개의 파일이 닫혀 있는지) 다음

#include <stdio.h> 
#include <sys/stat.h> 

int main(void) { 
    const char* myDirectory = "/Users/floris/newDirectory"; 
    char fileName[256]; 
    int ii, fErr; 
    FILE *fp; 
    fErr = mkdir(myDirectory, (mode_t)0700); 
    for(ii=0; ii< 10; ii++) { 
    sprintf(fileName, "%s/file%d.txt", myDirectory, ii); 
    if((fp = fopen(fileName, "w"))!=NULL) { 
     // do whatever you need to do 
    } 
    else { 
     printf("could not open %s\n", fileName); 
    } 
    fclose(fp); 
    } 
return 0; 
} 
+0

디렉토리가 보호되지 않습니까? –

+0

@CharlieK - 네 말이 맞아, 나는 내 대답을 게시하는 데 너무 빠르다. 두 번째 매개 변수'0700 '을 추가하여 파일 소유자에 대한 모든 권한으로 설정할 수 있습니다 (다른 사람에게는 없음). 그에 따라 수정 된 답변 - "완전한 작업 코드"를 제공하도록 업데이트되었습니다. – Floris

0
int k; 

char filename[200]; 

for(k = 0; k < 10; k++) 
{ 
    sprintf(filename, "/home/ubuntu/Desktop/%d.txt", k); 
    fopen(filename,"w"); 
} 
관련 문제