Это мой код, и по какой-то причине он утверждает, что есть необъявленный идентификатор, хотя я объявил все
#include <iostream>
#include <string>
#include <fstream>
#include <iterator>
#include <algorithm>
using namespace std;
char a;
char caesarCipher (char );
char caesarDecipher (char );
string input;
string line;
std::string str;
void displayMenu() {
cout<<"This program will encrpt/decrypt files";
cout<<"To encrypt press 'e'/To decrypt press 'd'";
cin>>a;
}
void encrypt() {
string filename,ofilename;
cout << "Input filename: ";
cin >> filename;
cout << "Output filename: ";
cin >> ofilename;
ifstream infile(filename);
ofstream outfile(ofilename);
if ((infile >> noskipws) && outfile) {
std::transform(istream_iterator<char>(infile),
istream_iterator<char>(),
ostream_iterator<char>(outfile),
ceaserCipher);
string output = "";
for(int x = 0; x < input.length(); x++) {
output += ceaserCipher(input[x]);
}
}
}
/**************************************************************
* This function decrypts the content of infile and saves the *
* decrypted text into outfile *
* @param infile string (file that has encrypted text) *
* @param outfile string (file that will have decrypted text) *
**************************************************************/
void decrypt() {
string filename,ofilename;
cout << "Input filename: ";
cin >> filename;
cout << "Output filename: ";
cin >> ofilename;
ifstream infile(filename);
ofstream outfile(ofilename);
if ((infile >> noskipws) && outfile) {
std::transform(istream_iterator<char>(infile),
istream_iterator<char>(),
ostream_iterator<char>(outfile),
ceaserDecipher);
string output = "";
for(int x = 0; x < input.length(); x++) {
output += ceaserDecipher(input[x]);
}
}
}
/**************************************************************
* This function takes an character and a cipher key to return*
* an encrypted character. *
* @param c is a char (the character to be encrypted) *
* @param key is an integer (cipher key given in the handout) *
**************************************************************/
char ceaserCipher(char c) {
if (isalpha (c)) {
c = toupper(c);
c = (((c-65)+5) % 26) + 65;
}
return c;
}
char ceaserDecipher(char c) {
if (isalpha (c)) {
c = toupper(c);
c = (((c-65)-5) % 26) + 65;
}
return c;
}
int main() {
char b;
displayMenu();
if (a=='e'||a=='E') {
encrypt;
}
else (a=='d'||a=='D'); {
decrypt;
}
cout<<"To exit input 'e'/To continue press 'c'";
cin>>b;
switch (b) {
case 'c':
return main();
case 'e':
return 0;
break;
}
}
Это ошибки:
ceaserCipher ': необъявленный идентификатор ceaserCipher ': идентификатор не найден ceaserDecipher ': необъявленный идентификатор ceaserDecipher ': идентификатор не найден
Любая помощь приветствуется
Вы неправильно написали имя функции. У тебя есть
char caesarDecipher (char );
пока вы пытаетесь использовать (а позже — определить) ceaserDecipher
(обратите внимание на разные способы написания: «ceasEr» и «ceasAr»).
Ваши предварительные объявления записывают его как цезарь, но ваши функциональные определения пишут его как цезарь.