【发布时间】:2018-03-23 23:00:27
【问题描述】:
我正在用 C 编写一个汇编程序的第一遍以进行赋值,并且需要读取带有汇编代码的文本文件的行,并存储标签、操作码和操作数,以及行中的任何 cmets在前三个字符串之后。我最初使用过
fscanf(fileptr1,"%s\t%s\t%s",label,opcode,operand);
对于没有 cmets 的文件,但 sscanf 无法将行的其余部分放入单个 char 数组中。好像我会使用fgets,但是我如何将它分成前三个用空格分隔的字符串,然后是行的其余部分,直到换行符?
作为参考,这些行遵循以下格式:
LABEL OPCODE OPERAND COMMENTS IN MULTIPLE STRINGS
我希望将标签、操作码和操作数放在单独的字符串中,就像我现在所做的那样,然后在整个行的其余部分使用单独的字符串。汇编代码中的几行供参考:
COPY START 1000 COPY FILE FROM INPUT TO OUTPUT
FIRST STL RETADR SAVE RETURN ADDRESS
CLOOP JSUB RDREC READ INPUT RECORD
LDA LENGTH TEST FOR EOF (LENGTH = 0)
COMP ZERO
JEQ ENDFIL EXIT IF EOF FOUND
JSUB WRREC WRITE OUTPUT RECORD
J CLOOP LOOP
【问题讨论】: