首页 > 解决方案 > 解析文件:fgets()、fscanf() 还是其他?

问题描述

我在读取看起来像这样的文件时遇到问题(缩进正确):

I  00400570,3
 S 00600a70,4
I  00400573,4
 M 7ff000388,4

这就是我所做的:

FILE *input = fopen(trace_file,"r");

    char line_instruction;
    mem_addr memory_add; //mem_addr is typedef unsigned long int
    int size;
    int result;

    while(!feof(input)){

        fscanf(input, "%c %lx %d",&line_instruction, &memory_add, &size);

        if(line_instruction == 'I'){
            continue;
        }

        else if(line_instruction == 'S' || line_instruction == 'L'){
            ; //Add stuff
        }

        else{
            ; //Add Stuff   
        }
}

我想要发生的是字母转到变量“line_instructions”,十六进制到“memory_add”,最后的int到“size”。这不是发生的事情。这样做的正确方法/更好的方法是什么?

标签: cfilescanffgets

解决方案


推荐阅读