允许用户在c中再次启动程序?

时间:2009-09-11 19:41:38

标签: c

我在c写了一个程序。但是一旦程序完成,它就会停止(duh)。是否有一个简单的脚本允许我让用户重新启动程序?

5 个答案:

答案 0 :(得分:3)

为什么不在main中使用loop(for,while):(如果程序很简单!)

main()
{

 while( Exit condition)
 {
  //logic
 }
}

答案 1 :(得分:2)

char cont_prog = 'n';
do {
    /* main program in here */
    printf("Do you want to start again? (y/n): ");
    cont_prog = getchar();
} while (cont_prog == 'y' || cont_prog == 'Y');

基本上,您希望将主要编程放在循环中,询问用户是否要继续。您必须处理输入太多数据的用户(例如,他们输入“是”),并且下次循环时缓冲区已满。

答案 2 :(得分:1)

如果你真的想在不退出的情况下重新启动程序(虽然我看不出原因):

  1. 保存argv(如果您需要相同的命令行参数,我会假设argv[0]实际指向您的可执行文件,即使无法保证)。
  2. 考虑保存环境,如果您可以更改环境,也希望重复环境。
  3. man execvexecle。只需使用具有相同命令行的新映像替换当前运行的映像
  4. 坦率地说,循环会更容易,并且如果你避免全局状态,或者安排能够重新设置它,它可以具有相同的语义。

答案 3 :(得分:0)

当然可以,但是如何让用户运行该脚本?让用户简单地重新运行程序会不会更简单?

答案 4 :(得分:0)

#include <stdlib.h>
#ifdef WIN32
#define EXECUTABLE ".exe"
#else
#define EXECUTABLE
#endif
int main(void) {
    for (;;) system("executable_in_c" EXECUTABLE);
    return 0;
}

编译此程序,将旧的可执行文件重命名为“executable_in_c [.exe]”;将此名称重命名为旧可执行文件的名称...瞧!