为什么我无法从读取文件中输出?

问题描述 投票:0回答:0

我正在尝试读入一个文件,然后为某些命令解析该文件。 (我正在模拟 CPU)。 一切都编译了,看起来它会工作,但是当我用我的第一个参数作为输入文件运行程序时,没有任何反应。

我正在使用

fscanf()
读取我的文件,并使用字符串变量读取命令。我的
clock.cpp
中有一个解析函数,我的 main 中有一个解析器。我希望
emul.cpp
解析设备名称,然后
clock.cpp
解析时钟滴答声并转储它们。

clock.cpp

#include "Clock.h"
#include<stdio.h>

void Clock::reset(){
    internCount = 0;
}

void Clock::tick(unsigned int clockTicks){
    for(int i = 0; i <= clockTicks; i++){
        internCount++;
    }
}

void Clock::dump(){
    printf("Clock: %d\n\n", internCount);
}

void Clock::parse()
{
char *argument_c;
    while(fscanf(infile, "%s", &argument_c) > 0);
    string argument(argument_c);
    if(argument == "reset")
    {
        reset();
    }
    else if(argument == "tick")
    {
        int *num;
        fscanf( infile, "%d", num);
        tick(*num); 
    }
    else if(argument == "dump"){
        dump();
    }
}

void Clock::doCycleWork(){

}

Clock &getClock(){
    static Clock clock;
    return clock;
}

主要:

#include "clock.h"
#include <stdio.h>

using namespace std;

int main(int argc, char **argv){
   if (argc < 2){
        cerr << "usage: cs3421_emul <data file>" << endl;
        return 1;
   }
    FILE *infile = fopen(argv[1], "r");

    Clock &clock = getClock();


    char *deviceName_c;
    while(fscanf(infile, "%s", &deviceName_c) > 0){
        string deviceName(deviceName_c);
    
        if (deviceName == "clock"){
            clock.parse();
        }
    }
    fclose(infile);

}
c++ parsing scanf
© www.soinside.com 2019 - 2024. All rights reserved.