使用 char 数组作为模块的输入来扫描 C 语言中的文件



我正在尝试使用getStats函数两次 - 每个输入文件一次。我应该使用一个名为 statFile[] 的 char 数组作为参数传递给原型以选择要使用的文件。目前,我知道如何一次使用一个文件(通过在原型中显式命名文件)以使其工作,但不了解如何将其用于两个输入。提前感谢!

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define AUBURN "auburn2013.txt"    //input data files
#define ALABAMA "alabama2013.txt"   //input data files
#define NUMGAMES 13
int  getStats( char statFile[], int compPass[], int attPass[], int numYds[], int numTD[] );
void analysis( int compPass[], int attPass[], int numYds[], int numTD[], double aveYds[], double pectCmp[], int tdPts[], int numGames[]);

int main(void)
{
   int compPass[NUMGAMES],
          attPass[NUMGAMES],
          numYds[NUMGAMES],
          numTD[NUMGAMES];
   double bamaStats,
          auburnStats,
          setAuburn,
          setBama;

   FILE *au = fopen("auburn2013.txt","r");  
   FILE *al = fopen("alabama2013.txt","r");  

   if (al == NULL)
      printf("Error Opening Filen");
   else if (au == NULL)
      printf("Error Opening Filen");
   bamaStats = getStats(ALABAMA, compPass, attPass, numYds, numTD);
   return 0;
}
int  getStats( char statFile[], int compPass[], int attPass[], int numYds[], int numTD[] )
{
   int i,
       p,
       k = sizeof(compPass[NUMGAMES]);
   FILE *al = fopen("alabama2013.txt","r");  
   while (fscanf(al ,"%d %d %d %d", &compPass[i], &attPass[i], &numYds[i], &numTD[i]) !=EOF)
   {
      i++;
   }
   printf("Number of Games with data: %dn", i);
   for(p=0; p<8 ; p++)
   {
         printf("%d %d %d %dn", compPass[p], attPass[p], numYds[p], numTD[p]);
   }
   return 0;
}

您已经传入了统计信息文件名,因此需要更改:

FILE *al = fopen("alabama2013.txt","r"); 

FILE *al = fopen(statFile,"r"); 

你可以这样做:

#include <stdio.h>
#include <assert.h>
void print_fname(char **farray, int fnum)
{
    int i;
    assert(farray != NULL);
    for (i = 0; i < fnum; ++i) {
        assert(farray[i] != NULL);
        printf("file name %d: %sn", i + 1, farray[i]);
    }
}
int main()
{
    char *farray[] = {"file1", "file2"};
    print_fname(farray, 2);
    return 0;
}

希望能有所帮助。

最新更新