Я пытаюсь написать программу для Caesar Cipher, и сейчас я работаю над функцией, чтобы найти ключ для переключения шифрования.Проблема при чтении файлов через функцию
Теперь возникает проблема, что в то время как он читает файл, программа перерывы, и я получаю ошибку:
«Exception брошенную в 0x89012914 в ConsoleApplication11.exe: 0xC0000005:. Нарушение прав доступа выполняющегося местоположения 0x89012914 Если является обработчиком для этого исключения, программа может быть безопасно продолжена ».
Вот код, который у меня есть до сих пор, есть ли что-то очевидное, что я пропускаю?
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;
}
[Посмотрите это] (http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – Rakete1111