Ich versuche, ein Programm für einen Caesar Cipher zu schreiben, und gerade arbeite ich an der Funktion, um den Schlüssel zu finden, um die Chiffre zu verschieben.Problem beim Lesen von Dateien durch Funktion
Nun stellt sich das Problem, dass, während es die Datei liest, das Programm bricht und ich den Fehler:
Ausnahme bei 0x89012914 in ConsoleApplication11.exe geworfen“: 0xC0000005:. Zugriffsverletzung Ausführung Lage 0x89012914 Wenn ist ein Handler für diese Ausnahme, das Programm kann sicher fortgesetzt werden. "
Hier ist der Code, den ich bisher habe, gibt es etwas offensichtlich, dass ich übersehe?
int findKey(string& file);
int main()
{
string inputFileName;
cout << "Input file name: ";
getline(cin, inputFileName);
findKey(inputFileName);
}
int findKey(string& file)
{
string reply;
ifstream inFile;
char character;
int count[26] = { 0 };
int nGreatest = 0;
inFile.open(file.c_str());
if (!inFile.is_open())
{
cout << "Unable to open input file." << endl;
cout << "Press enter to continue...";
getline(cin, reply);
exit(1);
}
while (inFile.peek() != EOF)
{
inFile.get(character);
cout << character;
if (int(character) >= 65 || int(character) <= 90)
{
count[(int(character)) - 65]++;
}
else if (int(character) >= 97 || int(character) <= 122)
{
count[(int(character)) - 97]++;
}
}
for (int i = 0; i < 26; i++)
{
if (count[i] > nGreatest)
nGreatest = count[i];
}
cout << char(nGreatest) << endl;
return 0;
}
[Schauen Sie sich das an] (http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – Rakete1111