file.c

来自「模拟电梯程序」· C语言 代码 · 共 150 行

C
150
字号
#include<stdlib.h>
#include<stdio.h>
#include"data.h"
#include"File.h"


FILE *InputFileptr;
FILE *OutputFileptr;
FILE *RecordFileptr;
char filename[50];/*运行文件的文件名*/

void StartFile (void)
{
     int choice;/*存放选择的变量*/
     
     
    system("cls");/*清除屏幕*/
     printf("文件管理:\n"
            "1.生成新文件\n"
            "2.返回上一级\n");
     scanf("%d",&choice);
     switch(choice)
     {
         case 1:printf("请输入将要写入的文件的路径和文件名:\n");
                scanf("%s",&filename); 
                printf("请写入呼叫时间和呼叫请求:(呼叫时间(四位) 空格 呼叫请求,以ctrl+z结束)\n");
                OutputFileptr=fopen(filename,"w");
                writeFile();/*写文件*/
                break;
        
         case 2:system("cls");
			   /*printf("1.文件管理\n" 
                       "2.运行程序\n" 
                       "3.退出\n");*/
                break;
         default:printf("ERROR\n");   
     }
}



/*关闭记录文件*/
void CloseAnnalFile(void)
{
     if(OutputFileptr!=NULL)
      fclose(OutputFileptr);
} 


/*写文件*/
void writeFile(void)
{
     char ch;
     fflush(stdin);
     while((ch=getchar())!=EOF)
         fputc(ch, OutputFileptr); /*将从键盘读入的数据(时间,目标)写入记录文件 */       
     fflush(OutputFileptr);
}

/*记录文件是否成功打开*/
int IsScriptOpened (void)
{
    if(InputFileptr==NULL)/*将要运行的文件是否成功打开*/ 
       return 0;
    else
       return 1;
}
    
/*记录文件是否成功打开*/
int IsAnnalFileOpened (void)
{
    if(OutputFileptr==NULL)
		return 0;
    else 
		return 1;
}

/*刷新缓冲区*/ 
void FlushFileBuffer (void)       
{
     if(!fflush(InputFileptr))
     printf("SUCCEED!\n");
     else
     printf("ERROR\n");
}



void Output(PAUSEPTR *startPtr)
{
    if((*startPtr)!=NULL){
       printf("%10d%8d\n",(*startPtr)->PauseTime,(*startPtr)->PauseFloor);
       fprintf(RecordFileptr,"%d    %d\n",(*startPtr)->PauseTime,(*startPtr)->PauseFloor);
	   fflush(RecordFileptr);
       free(*startPtr);
    }
    *startPtr=NULL;
}



/*记录文件是否成功打开*/
int IsFileOpened (void)
{
    if((InputFileptr=fopen("D:\\lift.txt","w"))==NULL)
		return 0;
    else 
		return 1;
}

void ReadFromFile()
{
	FILE *fptr;
	int time;
	char command;
	char ch[20];
	int i = 0;

	if (OutputFileptr == NULL) {
		printf("请输入要打开的文件名:");
		gets(ch);
		fptr = fopen(ch, "r");
		if (!fptr) {
			printf("文件不存在!\n");
			return;
		}
	}
	else {
		fptr = OutputFileptr;
	}

	fscanf(fptr, "%d %c", &cmd[0].time, &cmd[0].command);
	while (!feof(fptr)) {
		i++;
		fscanf(fptr, "%d %c", &cmd[i].time, &cmd[i].command);
	}

	fclose(fptr);
}

/*从文件读入数据*/
extern void GetInput2(int curTime)
{
    static int i = 0;

	while (cmd[i].time == curTime) {
		translatecalling(cmd[i].command);
		i++;
	}
}    

⌨️ 快捷键说明

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