读取并将行存储到Array中

时间:2015-11-22 07:17:13

标签: c arrays file caching

所以我有另一个实验室项目,就是用C编写缓存模拟器。 首先,我需要在HEX中读取地址然后我可以执行此过程。 我的想法是读取每一行并将整行存储到数组中。 例如,我想将0x00A0E00E存储到Array [0]。

文本文件如下所示:

0x00000033 0x00000003 0x00000003 0x00000003 0x00000003 0x0000005A 0x0000000B 0x00000000 0x00000009 0x0000000A

我的原始代码试图读取文件中的每个字符,这使得操作变得更加困难。 这是我的代码:

 /*
 *This is the program for lab assignment3 the Cache Simulator
 */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define BLOCK_SIZE 4  // each block store 4 words
#define FILE_NAME "address.txt"

//function prototypes

void readFile(FILE *filePtr, char* inFileName);
float hitRatio(int totalAccessMem, int totalHit);

float hitRatio(int totalAccessMem, int totalHit)
{
    float hitRatio = 0.0;
    hitRatio = totalHit / totalAccessMem;
    return hitRatio;
}

void readFile(FILE *filePtr, char* inFileName)
{

    char address[5500];
    //open the file
    filePtr = fopen(inFileName , "r");

    int i=0;

for(i; i<5500; i++)
    {
        fscanf(filePtr, "%c", &address[i]);
        printf("%c", address[i]);
    }

//printing test
    fclose(filePtr);
}

int main()
{
    int totalAccessMem = 0; // default value of total access memory
    int totalHit = 0;       // default value of total hits

    char inFileName[] = FILE_NAME;
    FILE *ptr;
    readFile(ptr, inFileName);
    return 0;
}

另外,我可以修改每个数组成员中的成员吗? 例如,如果Array [0]中的成员是0x00000033,那么我可以编辑每个字母吗?

0 个答案:

没有答案