C++ - Using for loop, while loop and do while loop to copy file
The main difference between for loop, while loop, and do while loop is
- While loop checks for the condition first. so it may not even enter into the loop, if the condition is false.
- do while loop, execute the statements in the loop first before checks for the condition. At least one iteration takes places, even if the condition is false.
- for loop is similar to while loop except that
- initialization statement, usually the counter variable initialization
- a statement that will be executed after each and every iteration in the loop, usually counter variable increment or decrement.
The following sample code explains all 3 different loops:
bool CopyFile2(const char *srcFileName, const char *destFileName)
{
FILE *istream = fopen(srcFileName, "rb");
FILE *ostream = fopen(destFileName, "wb");
if (istream == 0 || ostream == 0)
return false;
const int len = 4096;
char buf[4096];
//////////////////////////////////////////////////////
while(1)
{
if( feof(istream))
break;
int nBytesRead = fread(buf, 1, len, istream);
if(nBytesRead <= 0)
break;
fwrite(buf, 1, nBytesRead, ostream);
}
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
for(;;)
{
if( feof(istream))
break;
int nBytesRead = fread(buf, 1, len, istream);
if(nBytesRead <= 0)
break;
fwrite(buf, 1, nBytesRead, ostream);
}
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
do
{
if( feof(istream))
break;
int nBytesRead = fread(buf, 1, len, istream);
if(nBytesRead <= 0)
break;
fwrite(buf, 1, nBytesRead, ostream);
} while(1);
//////////////////////////////////////////////////////
fclose(istream);
fclose(ostream);
return true;
}
|