⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 Pro.TOOLKIT.Wildfire插件设计.配套光盘-141M.zip
💻 C
字号:
/*======================================*\

test.c

\*======================================*/

#include <stdio.h>
#include <string.h>


#define MAX_LENGTH  60
#define END_OF_ARRAY	'\0'


typedef struct week{
    char name[MAX_LENGTH];
    int  number;
    } Week;


/*===================================*\
	函数: TestAllocSpace
	问题1:此函数的作用?
\*===================================*/
int TestAllocSpace(int num, char **list)
{
    /*-------------------------------------------------------------*\
        问题2:为什么将**list传递给函数而不是*list?
        问题3:"if else"语句的作用是什么?
    \*-------------------------------------------------------------*/
    if (num == 0)
        *list = (char *)calloc(1, sizeof(Week));
    else
        *list = (char *)realloc(*list, sizeof(Week)*(num+1));

    return(0);
}


/*===============================*\
    函数:GetLine
	问题4:这个函数的作用是什么?
\*===============================*/
int GetLine(FILE *fp, char string[MAX_LENGTH])
{
  int len;

    while (fgets(string, MAX_LENGTH, fp) != NULL)
    {
        len = strlen(string);
        if (len > 1)
        {
            string[len-1] = END_OF_ARRAY;
            return (0);
        }
    }

  return (-1);
}
    

/*===================================*\
	函数:	main
	作用:启动程序
\*===================================*/
int main(int argc, char *argv[])
{
  char line[MAX_LENGTH];
  Week *list=NULL, *p;
  int i, num=0;
  FILE  *fp;
 
    /*-------------------------------------------------------------*\
        问题5:这个if语句判断什么?
    \*-------------------------------------------------------------*/
    if( argc < 2 )
        exit(-1);

    /*-------------------------------------------------------------*\
        问题6:这个if语句判断什么?
    \*-------------------------------------------------------------*/
    fp = fopen( argv[1], "r");
    if( fp == NULL )
	    /*-------------------------------------------------------------*\
        问题7:这个exit语句的作用?
    	\*-------------------------------------------------------------*/
        exit(-1);

    while ( !GetLine(fp, line) )
    {
        /*-------------------------------------------------------------*\
            问题8:这个语句执行后,list指针指向的内容是什么?
        \*-------------------------------------------------------------*/
        TestAllocSpace(num, &list);

        /*-------------------------------------------------------------*\
            问题9:这个语句作用是什么?
        \*-------------------------------------------------------------*/
        strcpy(list[num].name, line);
        
        p = &(list[num]);
        p->number = num;
        
        num++;
    }


    /*-------------------------------------------------------------*\
        问题10:根据week.dat中的内容试说出打印输出的内容。
    \*-------------------------------------------------------------*/
    for(i = num-1; i >= 0; i--)
        printf("%d) %s\n", list[i].number, list[i].name);

    /*-------------------------------------------------------------*\
        问题11:这个语句执行后,list指针指向的内容是什么?
    \*-------------------------------------------------------------*/
    free(list);

    /*-------------------------------------------------------------*\
        问题12:这语句的作用是什么?
    \*-------------------------------------------------------------*/
    fclose(fp);
	
  return(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -