【发布时间】:2014-06-09 14:16:30
【问题描述】:
我正在尝试以 FIFO 方式实现页面替换算法。
因为看起来输入至少必须是数千个整数所以我做到了 在文本格式的文件中 (例如 tr.inp / 1 20 603 20 26000 2401 201 20 603 ...)但我在这里遇到了一个问题...我不知道如何将这些数字导入我的程序,以便 FIFO 算法可以读取它们并找出发生了多少页错误。我试图通过在 argc 中获取参数、在 main() 中获取 argv 来实现这一点,但没有进一步的。我在代码中标记了我大部分时间都花在代码上来解决它的地方。我能做什么?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 500000
int fifo();
int refArr[MAX_SIZE];
int str[10];
int tmp[10];
char *chk;
int pgFault_number;
int i, j;
FILE *fp;
int main(int argc, char *argv[])
{
if(argc!=2)
{
perror("<Usage> $fifo file_name.ip");
exit(1);
}
fp=fopen(&argv[1], "rt");
if(fp==NULL)
{
perror("An error occured while opening the file...");
exit(1);
}
//From here
while(1)
{
chk=fgets(str, sizeof(str), fp);
if(chk==NULL)
break;
str[strlen(str)-1]='\0';
str
//To here
pgFault_number=fifo();
printf("\n no of page faults is : %d",pgFault_number);
fclose(fp);
return 0;
}
int fifo(integers from text file..)
{
TBD
}
<This is the contents of file> there're 50,000 integers in file.
...
1624
1624
1625
1625
1626
1626
1627
1627
1628
1628
1629
1629
1024
1025
1630
1630
896
897
1631
1631
768
769
640
641
1632
1632
512
513
128
129
384
385
...
【问题讨论】:
-
很难理解您的实际问题是什么。你想知道如何在不知道有多少的情况下从文件中读取所有整数吗?您的文件看起来如何?您能否逐字发布摘录,即使用 {code} 样式?
-
@MOehm 对不起,如果我把你弄糊涂了。我想知道的是如何从文件中获取所有整数(我在文本文件中有 50K 整数。)并按字面意思使用它们。
-
听起来你可能想要
fscanf和/或atoi。我始终保持对cplusplus.com/reference/clibrary 的标签打开。
标签: c