-4
を働いていない前方宣言が動作していない私の前方宣言コードの例です。C++ - ここ
void Register();
void Menu();
void Register()
{
string username, password, hospitalname;
ofstream file;
file.open("Hospital Creds.txt");
cout << "Hospital Name: ";
cin >> hospitalname;
cout << "Username: ";
cin >> username;
cout << "Password: ";
cin >> password;
cout << endl;
file << hospitalname << endl;
file << username << endl;
file << password << endl;
system("pause");
system("cls");
Menu();
}
void Menu()
{
int choice;
cout << " 1. Register Hospital " << endl;
cout << " 2. Register Donor " << endl;
cout << " 3. Exit " << endl;
cout << endl;
cout << "Please enter a number of your choice: ";
cin >> choice;
switch (choice)
{
case 1:
system("cls");
Register();
break;
}
}
void main()
{
Menu();
}
プログラムが実行されるときには、選択したときに、それは、その後、)(メニューになり、このようなものですそれはRegister()に行きますが、関数Menu()をコールバックしたいとき、プログラムは終了しました。どうしたの?
これはすべてコードですか? 「選択時」とは何ですか?それが実際にあなたのコードであれば、それはスタックを爆破し、あなたにこれを伝える何らかの形のエラーメッセージを出力する無限再帰です。より多くのコードがある場合は、投稿してください。 –
あなたの問題は前方宣言とは関係ありません。自分自身を呼び出す再帰関数を使用しています。 'Menu()'は、 'Register()'を無限に呼び出す 'Menu()'を呼び出す 'Register()'を呼び出します。これらの呼び出しのいずれかを何らかの形で強制的に(表示していないコードで)強制すると、再帰的に呼び出される関数のそれぞれが返され、 'main()'が返ってプログラムが終了します。また、C++では 'main()'は 'void'ではなく' int'を返します。 – Peter
@ KenY-N編集されました、私のエラーに協力してください、ありがとう –