私は最近、C++のオンライン学習を開始し、このコードの作業を開始しましたが、コンパイラが私に投げているエラーの助けが必要です。 基本的には、最初に「フラグ」変数を使用してパスワードを取得し、暗号化された形式でパスワードをテキストファイルに書き込むだけで、ユーザーからパスワードを取得したいだけです。 ユーザが初めてログインしていてパスワードが保存されている場合は、暗号化されたテキストを読み込み、解読してユーザが入力したパスワードと等しいかどうかを確認します。C++暗号化と復号化のソースコード
#include<iostream>
#include<string.h>
#include<fstream>
using namespace std;
char encryptpass(char *pass) //function to encrypt
{
for(int i=0; pass[i] != '\0'; ++i)
char enpass[10]= ++pass[i];
return(enpass);
}
char decryptpass(char *str) // function to decrypt
{
for(; str!='\0'; ++str)
char depass[10]= --str;
return(depass);
}
int main() // main function
{
int flag=0;
if(flag=0)
{
cout<<"enter your password";
char pass[10];
cin>>pass;
fstream file("userpass.txt",ios::in | ios::out);
file<<enpass[10];
}
else
{
cout<<"enter password";
cin>>pass;
bool check=false;
static char str[10];
file.seekg(ios::beg);
file >> str;
file.close();
decryptpass(str);
if(pass=depass) // decrypted password is equal to input password ?
{
check=true; // set boolen value to true
}
else
{
cout<<"incorrect password";
}
return(0);
} // end of main
コンパイラがこれらのエラーを与える-----
warning : In function 'void encryptpass(char*)':
line 9 error: array must be initialized with a brace-enclosed initializer
line 9 warning: unused variable 'enpass' [-Wunused-variable]
line 10 error: 'enpass' was not declared in this scope
line 10 error: return-statement with a value, in function returning 'void' [-fpermissive]
warning : In function 'void decryptpass(char*)':
line 17error: array must be initialized with a brace-enclosed initializer
line 17 warning: unused variable 'depass' [-Wunused-variable]
line 18 error: 'depass' was not declared in this scope
line 18 error: return-statement with a value, in function returning 'void' [-fpermissive]
warning : In function 'int main()'
line 25 warning: suggest parentheses around assignment used as truth value [-Wparentheses]
line 31 error: 'enpass' was not declared in this scope
line 36 error: 'pass' was not declared in this scope
line 39 error: 'file' was not declared in this scope
line 43 error: 'depass' was not declared in this scope
あなたは聞いたことはありませんが、それはパスワードを行う正しい方法ではないことを知っておくべきだと思います。コード自体について...このような混乱には決していかない方法を学ぶ。ちょっとしたコードを書いてプロジェクトを始めましょう。コンパイルして正しいことをするためにちょっとしたことをしてください。 (この時点で "正しいこと"はそれほどではありません)もう少し追加し、コンパイルしてテストしてください。そんなことを続けていくなど。いったんあなたがそれを掛けてしまえば、あなたが変更した最後のものになるので、 "エラー"は簡単に見つかるでしょう。 –
私は確かに提案された方法に従ってコードを書き直すだろう。提案に感謝します。 – binu23