使用以下信息提供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] ...
您必须将指针fp
重置为文件开始。因为while
循环为while ( (ch = fgetc(fp)) != EOF )
,所以指针fp
位于文件的末尾。