我想用不同的名稱複製文件多次。使用循環多次複製文件; C/C++
該程序是這樣的:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include <sstream>
#include<cstring>
using namespace std;
main()
{
string text;
int i;
char ch;
ostringstream oss;
FILE *fp1,*fp2;
if((fp1=fopen("One Dollar.jpg", "rb"))==NULL)
{
cout<<"Error";
exit(-1);
}
for(i=1; i<=5; i++)
{
oss << "C:\\5241 Dollar\\One Dollar " << i << ".jpg";
text = oss.str();
if((fp2=fopen(text.c_str(), "wb"))==NULL)
{
cout<<"Error "<<i;
exit(-1);
}
while(!feof(fp1))
{
fread(&ch, 1, 1, fp1);
fwrite(&ch, 1, 1, fp2);
}
fclose(fp2);
/* for(int j=0;j<30000;j++)
for(int k=0;k<30000;k++)
if(k==3000)
cout<<k; */
}
fclose(fp1);
}
在此有兩個文件流其中之一是源,而另一個是目的地..我裝入二進制讀模式下的實際文件和目標爲二進制寫模式。我使用了for循環來完成這項工作。但只要循環第二次迭代,fp2的文件打開就會失敗。我得到的輸出:錯誤2.
我該如何使代碼工作?
有什麼錯誤? – Mark
其實這不是錯誤,即編譯器不顯示任何錯誤。由壞。這可能是一個bug ... 第二次,我得到的輸出:錯誤2 從這個if語句:if((fp2 = fopen(text.c_str(),「wb」))== NULL) – ponir
@ user817824更新了我的回覆 –