2013-12-17 35 views
-2

將數據從一個文本文件傳輸到另一個文本文件時出現問題。我的想法是每個角色轉移它,但它似乎不工作。我已經在開始時加入這些代碼將數據從一個文本文件保存並傳輸到另一個文本文件

FILE *addressPtr; 
FILE *ressPtr; 

addressPtr = fopen("temporary.txt","w"); 

這些代碼集在開關狀態

fclose(addressPtr); 
addressPtr = fopen("temporary.txt","r"); 
while((filechar = fgetc(addressPtr)) != EOF){ 
    fclose(addressPtr); 
    ressPtr = fopen("Address Book.txt","a"); 
    fprintf(ressPtr,"%c",filechar); 
    fclose(ressPtr); 
    addressPtr = fopen("temporary.txt","r"); 
} 
printf("The file has been successfully saved!!"); 

我剛剛得知這些文件操作和真的不知道出了什麼問題

如果我打開我的Address Book.txt文件,它將只顯示fi我的temporary.txt的第一個字符,但不斷(永無止境)。

+0

每次關閉文件並重新打開文件時,它都會從頭開始。您不需要關閉一個文件就可以寫入另一個文件;只需保持兩個文件都打開,直到所有輸入都用盡,然後關閉它們。 –

回答

-1

您需要打開binary模式下的文件。

addressPtr = fopen("temporary.txt","wb"); 

還使用"rb"以二進制模式寫入來打開文件。

我不確定你爲什麼在循環中使用fopen。但是,如果你要複製的文件,那麼這是一些工作的代碼我測試過:

#include<stdio.h> 

int main() 
{ 
    FILE *addressPtr; 
    FILE *ressPtr; 
    char filechar = '\0'; 

    addressPtr = fopen("D:\\test\\source.jpg","rb"); 
    ressPtr = fopen("D:\\test\\dest.jpg","wb"); 

    while(!feof(addressPtr)) 
    { 
     filechar = fgetc(addressPtr); 
     fprintf(ressPtr,"%c",filechar); 
    } 
    fclose(addressPtr); 
    fclose(ressPtr); 
    printf("The file has been successfully saved!!"); 

} 

這本質上拷貝一個名爲source.jpg到名爲dest.jpg另一個文件的文件。

希望你有你的答案。

+0

我改變了模式爲wb和rb,但stil不起作用 – user3111101

+0

添加了一些工作代碼的答案。檢查它。 –

相關問題