我需要帮助阅读文本文件中的说明。例如:
假设这是我的文本文件:
a 38
s 20
10
s 10
'a'代表add,'s'代表减法,而由tab分隔的数字是我想要从总数中加或减的数字。所以我希望我的程序逐行读取并执行指定的操作。
示例:如果我的总计从0开始,我希望程序在第一行读取“标签38”并在总计中添加38,然后转到下一行并阅读“s tab 20”on第二行,从总数中减去20。等等。
我知道如何让程序读取文件,但我不知道如何让它识别a / s,标签和数字,然后继续为每一行做。
任何帮助都会非常感激,因为我真的被卡住了。
答案 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)
获取指令和操作数。然后你可以根据指令字符简单地添加或减去操作数。