C中的FIFO页面替换,输出错误

C中的FIFO页面替换,输出错误,c,C,我试图从有页面框架和引用字符串的文本文件输入中读取,例如:在我的输入文件中,我有3,7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,其中从3开始是页面框架数,从7开始是引用字符串。 #包括 #包括 无效FIFO(字符[],字符[],整数,整数); //先进先出 无效FIFO(字符s[],字符Fi[],整数n,整数f) { int i,j=0,k,flag=0,cnt=0; printf(“\n\t页面\t帧\t错误”); 对于(i=0;i也许这段代码可以让您开始 #include

我试图从有页面框架和引用字符串的文本文件输入中读取,例如:在我的输入文件中,我有3,7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,其中从3开始是页面框架数,从7开始是引用字符串。

#包括
#包括
无效FIFO(字符[],字符[],整数,整数);
//先进先出
无效FIFO(字符s[],字符Fi[],整数n,整数f)
{
int i,j=0,k,flag=0,cnt=0;
printf(“\n\t页面\t帧\t错误”);

对于(i=0;i也许这段代码可以让您开始

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

//FIFO
void FIFO(
      int  *I__pages,
      char *I__frames,
      int   I__maxPages,
      int   I__maxFrames
      )
   {
   int pageIndex;
   int j=0;
   int pageFaults=0;
   int frameIndex;
   int noFault=0;

   for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
      I__frames[frameIndex]=-1;

   printf("\tPAGE\t  FRAMES\tFAULTS\n");
   for(pageIndex=0; pageIndex < I__maxPages; ++pageIndex)
      {
      printf("\t%d\t", I__pages[pageIndex]);

      for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
         {
         if(I__frames[frameIndex]==I__pages[pageIndex])
            noFault=1;
         }

      if(noFault)
         {
         noFault=0;
         for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
            printf(" %2d",I__frames[frameIndex]);

         printf("\tNo page-fault\n");
         continue;
         }

      I__frames[j++] = I__pages[pageIndex];
      if(j==I__maxFrames)
         j=0;

      for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
         printf(" %2d",I__frames[frameIndex]);

      printf("\tPage-fault%d =", pageFaults++);
      printf(" Total Faults\n");
      }

   return;   
   }

int main()
   {
   int ch,YN=1;
   int maxPages = 0;
   int maxFrames;
   char frames[30];
   int  pages[25];
   FILE *fp1 = NULL;                               // File Pointer Declaration

   fp1 = fopen("Inr.txt","r");                     // File Opening by File Name and Read Mode r
   fscanf(fp1,"%d,", &maxFrames);                   // Read the maxFrames value first.

   while(EOF != fscanf(fp1,"%d,",&pages[maxPages]))
      ++maxPages;

   fclose(fp1);

   do {
      printf("\n_________ Please Select One Option __________\n");
      printf("\n\t1:FIFO\t2:EXIT");
      printf("\n\n\tEnter your choice: ");
      scanf("%d",&ch);
      switch(ch)
         {
         case 1:
            FIFO(pages, frames, maxPages, maxFrames);
            break;

        case 2:
            return(0);
         }

      printf("\n\n\tDo u want to continue IF YES PRESS 1\n\n\tIF NO PRESS 0 : ");
      scanf("%d",&YN);
      } while(YN==1);

   return(0);
   }
#包括
#包括
//先进先出
无效先进先出(
int*I_uu页面,
char*I__帧,
int I__maxPages,
int I__最大帧
)
{
int-pageIndex;
int j=0;
int pageFaults=0;
整数帧索引;
int noFault=0;

对于(frameIndex=0;frameIndex预期输出和实际输出是什么?您做了什么调试?应该是什么?实际输出还是预期输出?请将其放在问题中,而不是放在注释中。它属于问题中的单独文本列表;不是作为注释中的文本墙粘贴在这里。updatee您的问题,注意预期和实际输出是什么,然后请删除评论。我现在已将预期输出添加为我的描述中的图像链接。尽管“属于您问题中的单独文本列表”,但不要/关闭imgur链接的投票。是的,它确实有效,谢谢。我现在也在处理LRU,它也显示了意外输出你帮不上忙。我可以把它贴在这里还是新的blog@Omi,最好是作为一个新问题发布。是的,我确实发布了一个新问题,你能看一下吗
#include <stdio.h>
#include <string.h>

//FIFO
void FIFO(
      int  *I__pages,
      char *I__frames,
      int   I__maxPages,
      int   I__maxFrames
      )
   {
   int pageIndex;
   int j=0;
   int pageFaults=0;
   int frameIndex;
   int noFault=0;

   for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
      I__frames[frameIndex]=-1;

   printf("\tPAGE\t  FRAMES\tFAULTS\n");
   for(pageIndex=0; pageIndex < I__maxPages; ++pageIndex)
      {
      printf("\t%d\t", I__pages[pageIndex]);

      for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
         {
         if(I__frames[frameIndex]==I__pages[pageIndex])
            noFault=1;
         }

      if(noFault)
         {
         noFault=0;
         for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
            printf(" %2d",I__frames[frameIndex]);

         printf("\tNo page-fault\n");
         continue;
         }

      I__frames[j++] = I__pages[pageIndex];
      if(j==I__maxFrames)
         j=0;

      for(frameIndex=0; frameIndex<I__maxFrames; frameIndex++)
         printf(" %2d",I__frames[frameIndex]);

      printf("\tPage-fault%d =", pageFaults++);
      printf(" Total Faults\n");
      }

   return;   
   }

int main()
   {
   int ch,YN=1;
   int maxPages = 0;
   int maxFrames;
   char frames[30];
   int  pages[25];
   FILE *fp1 = NULL;                               // File Pointer Declaration

   fp1 = fopen("Inr.txt","r");                     // File Opening by File Name and Read Mode r
   fscanf(fp1,"%d,", &maxFrames);                   // Read the maxFrames value first.

   while(EOF != fscanf(fp1,"%d,",&pages[maxPages]))
      ++maxPages;

   fclose(fp1);

   do {
      printf("\n_________ Please Select One Option __________\n");
      printf("\n\t1:FIFO\t2:EXIT");
      printf("\n\n\tEnter your choice: ");
      scanf("%d",&ch);
      switch(ch)
         {
         case 1:
            FIFO(pages, frames, maxPages, maxFrames);
            break;

        case 2:
            return(0);
         }

      printf("\n\n\tDo u want to continue IF YES PRESS 1\n\n\tIF NO PRESS 0 : ");
      scanf("%d",&YN);
      } while(YN==1);

   return(0);
   }