为什么功能被跳过而不被读取?

时间:2019-05-08 14:59:50

标签: c function

我正在尝试编写代码,以便它将打开一个文件(员工和福利),然后在开始时被询问时显示它们。我可以这样做,但是我想使用函数。当我运行程序时,它会在启动后立即结束。如何设置功能以便它们运行。

我尝试将功能重命名为成功。 Ive在YouTube教程中也找不到帮助。

#include <stdio.h>
#include <stdlib.h>

int ans;
char Benefits[150];
char Worker[150];

int readfile();
int end();
int welcome();

int main()
{



  int welcome()
  {
    puts("Hi, Welcome to whatever this is!!\n");
  }

  int readfile()
  {



    FILE*fpointer;
    fpointer = fopen("Worker.txt","r");
    char Worker[150];

    while(!feof(fpointer))
    {
      fgets(Worker, 150, fpointer);

    }
    FILE*fpointer1;
    fpointer = fopen("Benefits.txt","r");
    char Benefits[150];

    while(!feof(fpointer))
    {
      fgets(Benefits, 150, fpointer1);

    }
    fclose(fpointer);
  }

  int menu(char Benefits)
  {
    {
      printf("1 - For option 1\n");
      printf("2 - For option 2\n");
      printf("3 - For option 3\n");
      printf("4 - For option 4\n");
      printf("5 - exit\n");

      scanf("%1d", &ans);
    }

    {
      if (ans==1)
        puts(Benefits);

      if (ans==2)
        puts(Worker);

      if (ans==3)
        puts("This is option3");

      if (ans==4)
        puts("This is option4");
    }
  }

  return 0;
}

我希望输出打印文件或退出。到目前为止,它会跳过功能并结束程序。

1 个答案:

答案 0 :(得分:1)

功能应在主功能之外。在主函数中,可以根据需要调用函数。

int main()
{
   welcome();
   readfile();

etc.

   return 0;
}

要成为真正有用的功能,可以使用参数。如果您这样定义readfile,则声明一个名为 filename 的参数,其中包含文件名。您可以 在函数中使用它而不是写文件的确切名称。

int readfile (char *filename)
{
  ...
  fpointer = fopen(filename,"r");
  ...
}

现在主要可以使用了

int main()
{
   welcome();
   readfile("Workers.txt");
   ...
}

这就是使函数有用的原因。您现在可以将功能重新用于另一个文件 名称不同。这不是您的解决方案,但即使您有所了解,我也希望能对您有所帮助。