programing

C의 파일 끝에 추가

bestcode 2022. 8. 30. 22:19
반응형

C의 파일 끝에 추가

파일 myfile의 내용을 추가하려고 합니다.txt를 두 번째 파일 myfile2의 끝에 추가합니다.txt (c)내용을 복사할 수 있지만 추가할 방법을 찾을 수 없습니다.제 코드는 다음과 같습니다.

FILE *pFile;
FILE *pFile2;
char buffer[256];

pFile=fopen("myfile.txt", "r");
pFile2=fopen("myfile2.txt", r+);
if(pFile==NULL) {
    perror("Error opening file.");
}
else {
    while(!feof(pFile)) {
        if(fgets(buffer, 100, pFile) != NULL) {
        fseek(pFile2, -100, SEEK_END);
        fprintf(pFile2, buffer);
    }
}
fclose(pFile);
fclose(pFile2);

fseek을 올바르게 사용하고 있다고는 생각하지 않지만, fseek를 호출하여 파일 끝에 포인터를 놓고 파일 선두가 아닌 포인터 위치에 쓰려고 합니다.이것이 올바른 접근법입니까?

추가로 열기:

pFile2 = fopen("myfile2.txt", "a");

그럼 그냥 편지해pFile2,그럴 필요 없어요.fseek().

의 매뉴얼에 따라fopen:

"a" 쓰기 위해 열려 있습니다.파일이 존재하지 않는 경우 생성됩니다.스트림은 파일 끝에 위치합니다.파일에 대한 후속 쓰기는 개입 fseek(3) 또는 이와 유사한 것에 관계없이 항상 파일의 그 당시 끝에 있게 된다.

그래서 만약 당신이pFile2=fopen("myfile2.txt", "a");스트림이 자동으로 추가되도록 끝에 배치됩니다.다음 작업을 수행합니다.

FILE *pFile;
FILE *pFile2;
char buffer[256];

pFile=fopen("myfile.txt", "r");
pFile2=fopen("myfile2.txt", "a");
if(pFile==NULL) {
    perror("Error opening file.");
}
else {
    while(fgets(buffer, sizeof(buffer), pFile)) {
        fprintf(pFile2, "%s", buffer);
    }
}
fclose(pFile);
fclose(pFile2);

언급URL : https://stackoverflow.com/questions/19429138/append-to-the-end-of-a-file-in-c

반응형