如何从一种功能切换到另一种功能
How to alternate from one function to another
我有这些功能:
read(){
}
write(){
}
main(){
cout << "This is a menu so you can choose what to do";
}
它实际上比那个更复杂,但是这个例子对你帮助我来说会很好。
我只想能够例如写,然后返回菜单,然后选择阅读等
我做不到:
read(){
main();
}
main(){
read();
}
因为main在read之前没有声明,所以我把main移到read上面,read在main之前没有声明。
确切地说,这个程序是一个议程,因此我可以创建日程安排和管理活动(写入),并且只查看包含所有活动的日历或只查看我的日程安排(读取)。我希望能够从 main 转到阅读,然后再转到 main,然后写你知道的
我想我可以将这些函数分成不同的文件,但我不知道如何从另一个文件调用函数。
有什么帮助吗?
好的,调用 main 不是一个好主意,但我想问题更多是关于如何让 2 个函数相互调用。
您至少需要转发声明一个:
int write(); //forward declare
int read() {
return write(); // use write which is still forward declared for now
}
int write() { // now defining write
return read();
}
显然这个示例代码意义不大(无限循环),但它说明了如何做到这一点。
这是另一种选择:
int main(void)
{
bool call_read = true;
while (true)
{
if (call_read)
{
read();
}
else
{
write();
}
call_read = !call_read;
}
return 0;
}
在上面的示例中,bool
变量用于在 read
和 write
函数之间切换。
这种方法的一个很好的特点是调用的函数不需要相互了解。
编写菜单的一个好方法是在 main 中使用 while 循环和 switch 语句。假设读取和写入函数没有在其他地方分支,当它们完成时,它们 return 到它们的调用者 main()。 while 循环确保菜单在用户完成之前不会结束。
int main()
{
char choice = '\n';
while (choice != 'q')
{
// Display menu options
cout << "r: Read" << endl << "w: Write" << endl << "Enter a choice: ";
cin >> choice;
// Implement menu interface
switch (choice)
{
case 'r':
read();
break;
case 'w':
write();
break;
case 'q':
cout << "Quitting the menu. Bye!" << endl;
break;
default:
cout << "Invalid choice!" << endl;
break;
} //end switch
} // end while
return 0;
} // end main
我有这些功能:
read(){
}
write(){
}
main(){
cout << "This is a menu so you can choose what to do";
}
它实际上比那个更复杂,但是这个例子对你帮助我来说会很好。
我只想能够例如写,然后返回菜单,然后选择阅读等
我做不到:
read(){
main();
}
main(){
read();
}
因为main在read之前没有声明,所以我把main移到read上面,read在main之前没有声明。
确切地说,这个程序是一个议程,因此我可以创建日程安排和管理活动(写入),并且只查看包含所有活动的日历或只查看我的日程安排(读取)。我希望能够从 main 转到阅读,然后再转到 main,然后写你知道的
我想我可以将这些函数分成不同的文件,但我不知道如何从另一个文件调用函数。
有什么帮助吗?
好的,调用 main 不是一个好主意,但我想问题更多是关于如何让 2 个函数相互调用。
您至少需要转发声明一个:
int write(); //forward declare
int read() {
return write(); // use write which is still forward declared for now
}
int write() { // now defining write
return read();
}
显然这个示例代码意义不大(无限循环),但它说明了如何做到这一点。
这是另一种选择:
int main(void)
{
bool call_read = true;
while (true)
{
if (call_read)
{
read();
}
else
{
write();
}
call_read = !call_read;
}
return 0;
}
在上面的示例中,bool
变量用于在 read
和 write
函数之间切换。
这种方法的一个很好的特点是调用的函数不需要相互了解。
编写菜单的一个好方法是在 main 中使用 while 循环和 switch 语句。假设读取和写入函数没有在其他地方分支,当它们完成时,它们 return 到它们的调用者 main()。 while 循环确保菜单在用户完成之前不会结束。
int main()
{
char choice = '\n';
while (choice != 'q')
{
// Display menu options
cout << "r: Read" << endl << "w: Write" << endl << "Enter a choice: ";
cin >> choice;
// Implement menu interface
switch (choice)
{
case 'r':
read();
break;
case 'w':
write();
break;
case 'q':
cout << "Quitting the menu. Bye!" << endl;
break;
default:
cout << "Invalid choice!" << endl;
break;
} //end switch
} // end while
return 0;
} // end main