qq_28865251 2017-04-17 02:10 采纳率: 60%
浏览 800
已采纳

求解,下面代码的 alreadynum和Headnum的意义和作用

#ifndef FILEOPERA_H
#define FILEOPERA_H

#include "common.h"
#include "MFD.h"
using namespace std;

extern vector UsrInfo;
extern int num;
extern MFD UsrInput;
extern int Headnum;
extern vector< vector > FileState;
extern UFD FileInput;
extern UOF StateInput;
extern Cluster ClusterInput;
extern vector < vector > FileInfo;
extern vector< Cluster> FileCluster;

void initFiletoRom()
{
FILE *streamInit;
if ((streamInit = fopen("disk.txt", "r")) == NULL)
{
cout << "从磁盘中读入时失败!" << endl;
return ;
}

fscanf(streamInit, "%d", &Headnum);
int alreadynum;
int ret;
alreadynum = 0;
while (alreadynum {
UsrInfo.push_back(UsrInput);
alreadynum++;
}
vector t;
for (int i = 0; i < UsrInfo.size(); i++)
{
FileInfo.push_back(t);
}
vector temp;
for (int i = 0; i < UsrInfo.size(); i++)
{
FileState.push_back(temp);
}

for (int i = 0; i < UsrInfo.size(); i++)
{
fscanf(streamInit, "%d", &Headnum);
alreadynum = 0;

while (alreadynum<Headnum && (ret = fscanf(streamInit, "%s %d %d %d", &FileInput.filename, &FileInput.mode, &FileInput.length, &FileInput.addr)) != -1)
{
FileInfo[i].push_back(FileInput);
alreadynum++;
}
}

for (int i = 0; i < UsrInfo.size(); i++)
{
fscanf(streamInit, "%d", &Headnum);
alreadynum = 0;
while (alreadynum<Headnum && (ret = fscanf(streamInit, "%s %d %d %d %d", &StateInput.filename, &StateInput.mode, &StateInput.state, &StateInput.read_poit,&StateInput.write_poit)) != -1)
{
FileState[i].push_back(StateInput);
alreadynum++;
}
}

alreadynum = 0;
char Tempbuf[256];
int total = 0;
char c;
while (total < 68)
{
total++;
memset(Tempbuf, 0, sizeof(Tempbuf));
if ((ret = fscanf(streamInit, "%d %d", &ClusterInput.next_num, &ClusterInput.is_data)) != -1)
{
if (ClusterInput.is_data == 1)
{
fscanf(streamInit, "%c", &c);
fgets(Tempbuf, 256, streamInit);
}
strcpy(ClusterInput.data, Tempbuf);
FileCluster.push_back(ClusterInput);
}
else
{
ClusterInput.next_num = alreadynum;
ClusterInput.is_data = 0;
strcpy(ClusterInput.data, Tempbuf);

FileCluster.push_back(ClusterInput);
}
alreadynum++;
}

fclose(streamInit);
}

  • 写回答

1条回答 默认 最新

  • shen_wei 2017-04-17 07:16
    关注

    alreadynum 真实读取到的数据个数

    fscanf(streamInit, "%d", &Headnum);
    Headnum 数据开始的起始点

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料