我如何将保存在.txt文件中的过程值保存到c中的4个不同的数组中

问题描述 投票:-1回答:1

使用以下信息提供processs.txt

0 4 96 30
3 2 32 40
5 1 100 20
20 3 4 30

如何将文件的每一行另存为c中4个不同数组的元素?即>

int arr1 = [0,4,96,30]
int arr2 = [3,2,32,40]
int arr3 = [5,1,100,20]
int arr[4] = [20,3,4,30]

这是我的代码,我在其中加载了.txt文件,但不知道如何将值存储在整数数组中。我的代码产生垃圾值。我想实现FCFS和Round Robin Process调度程序,还希望我的程序像这样从命令行中获取参数

./scheduler -f processes.txt -a ff -s 200 -m p

[调度程序需要使用先来先服务的算法来模拟在processs.txt文件中的进程执行,并假设访问了200KB的内存。

这里,

-f代表文件名-a用于调度算法的类型(即ff = FCFS,rr =循环)-m用于内存分配(即u =无限内存,p =交换x,v =虚拟内存)-s是memory-size是整数,指示以KB为单位的内存大小。在无限制内存的情况下,即-m u时,可以忽略此选项。-q Quantum,其中quantum是一个整数(以秒为单位)。该参数仅用于循环调度算法,默认值设置为10秒。

我该如何编写程序?

    #include <stdio.h>

    int main(int argc, char *argv[])
    {
     FILE *fp;
     char *filename;
     char ch;

      // Check if a filename has been specified in the command
      if (argc < 2)
       {
            printf("Missing Filename\n");
            return(1);
       }
       else
      {
            filename = argv[1];
            printf("Filename : %s\n", filename);
       }

       // Open file in read-only mode
       fp = fopen(filename,"r");

       // If file opened successfully, then print the contents
       if ( fp )
          {
            printf("File contents:\n");
            while ( (ch = fgetc(fp)) != EOF )
               {
                    printf("%c",ch);
               }

           }
       else
          {
             printf("Failed to open the file\n");
            }
       // Saving the contents of the file in a Number Array
            int numberArray[16];
            int i;

        for (i = 0; i < 16; i++)
        {
            fscanf(fp, "%d", &numberArray[i]);
        }

        for (i = 0; i < 16; i++)
        {
            printf("Number is: %d\n\n", numberArray[i]);
        }


    return(0);
    }

给出processes.txt,并提供以下信息0 4 96 30 3 2 32 40 5 1 100 20 20 3 4 30如何将文件的每一行保存为c中4个不同数组的元素?即int arr1 = [0,4,96,30] ...

c memory-management scheduling virtual-memory taskscheduler
1个回答
0
投票

您必须将指针fp重置为文件开始。因为while循环为while ( (ch = fgetc(fp)) != EOF ),所以指针fp位于文件的末尾。

© www.soinside.com 2019 - 2024. All rights reserved.