从文本文件中读取指令

时间:2017-02-12 00:35:21

标签: c

我需要帮助阅读文本文件中的说明。例如:

假设这是我的文本文件:

a 38

s 20

10

s 10

'a'代表add,'s'代表减法,而由tab分隔的数字是我想要从总数中加或减的数字。所以我希望我的程序逐行读取并执行指定的操作。

示例:如果我的总计从0开始,我希望程序在第一行读取“标签38”并在总计中添加38,然后转到下一行并阅读“s tab 20”on第二行,从总数中减去20。等等。

我知道如何让程序读取文件,但我不知道如何让它识别a / s,标签和数字,然后继续为每一行做。

任何帮助都会非常感激,因为我真的被卡住了。

2 个答案:

答案 0 :(得分:1)

也许你可以试试这个。代码我没有正确检查,但应该是编码行。这是主要功能代码。

FILE *fp;
char buff[255];
char numBuff[10];

int a;
int val = 0;
char op;
int len;

fp = fopen("/tmp/test.txt", "r");


while(fgets(buff, 255, file) != NULL){
    len = strlen(buff);
    strncpy (numBuff, buff+2, len-2);
    numBuff[len-2] = '\0';

    a = atoi(numBuff);

    if(buff[0] == 's'){
        val -= a;
    }else if(buff[0]=='a'){
        val += a;
    }
}

printf("%d",val);

答案 1 :(得分:1)

使用fscanf(yourfileptr, "%c\t%d", &instruction, &operand)获取指令和操作数。然后你可以根据指令字符简单地添加或减去操作数。