所以我在下面有这段 C 代码。当我放置printf
语句来测试输入文件中的文本时,我看到我得到了一堆垃圾值,更具体地说,它们甚至不是字母或数字,我认为它们是带有问号的菱形。我认为这意味着它没有按应有的方式处理这些值。输入文件有点 MIPS 汇编代码,但在此上下文中它只是一个文本文件。我已经注释掉了我程序的所有其他部分,只剩下这个小部分,但我仍然收到错误的值。我可能在这里做错了什么?
我用来在控制台上运行程序的命令是:
./assembler -symbols adder.asm
Where ./assembler is the driver (argv[0])
-symbols is a tag used (argv[1])
adder.asm is the input file (argv[2])
因此,一旦打开,我应该能够从该文件中获取文本,据我所知,这不是文件的问题,它可以更早地工作。
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
FILE *fp;
FILE *fp_out;
void main(int argc, char* argv[])
{
int mode;
if (strcmp(argv[1], "-symbols") == 0)
{
fp = fopen(argv[2], "r");
mode = 1;
}
else
{
fp = fopen(argv[1], "r");
fp_out = fopen(argv[2], "w");
mode = 2;
}
}