eof() Hvorfor virker følgende ikke?
Jeg er ved at lave et meget simpelt fil-krypterings program.Det jeg gerne vil vide er hvorfor keyFilen kun læses en gang.
med cout << chk; læser jeg output fra keyFilen
og får følgende resultat. (indholdet af keyFile.txt er \"Dette er keyfilen\", indholdet af textFile.txt er \"Dette er den tekst som skal kodes\".)
Dette er keyfilendddddddddddddd (omtrent)
Hvorfor??
// includes
#include <iostream>
#include <fstream>
// namespace
using namespace std;
// function declarations
int encrypt();
//int decrypt();
// main
int main()
{
encrypt();
//decrypt();
return 0;
}
// the encrypt function
int encrypt()
{
char cht, chk, chc;
cht = chk = chc = 0;
ifstream keyFile(\"keyFile.txt\");
ifstream textFile(\"textFile.txt\");
ofstream outFile(\"codeFile.txt\");
while (textFile)
{
textFile.get(cht);
if (textFile.eof())
return 0;
keyFile.get(chk);
if (keyFile.eof())
{
ifstream keyFile(\"keyFile.txt\");
keyFile.get(chk);
}
cout << chk;
chc = cht + chk;
outFile.put(chc);
}
return 0;
}
Har en if-sætning sit eget scope?
