如何解决C程序逐行读取文本,每行算术运算
我正在尝试编写一个程序,该程序将从文本文件中读取算术运算作为参数并将这些结果每行输出到另一个文本文件。
我的输入文本文件如下
2+2
3*4
5-5
8/2
这是我现在拥有的代码。
int main (int argc,char **argv) {
char const* const fileName = argv[1];
FILE* file = fopen(fileName,"r");
int bufferLength = 256;
char buffer[bufferLength];
while(fgets(buffer,bufferLength,file)) {
printf("%s\n",buffer);
}
fclose(file);
return 0;
}
我在文本文件中的任何一行都采用 NUMBERarithmeticNUMBER
格式,如果我愿意的话,这与此类似:
int sum
sum = number1 + number2; // or any other operation
所以我想在 printf 中读取每一行作为 int 变量并将其输出到另一个文本文件。我的问题是 printf - %d 总是输出随机数而不是计算操作。
我只注意到 bufferLength 会影响随机性。它也许也可以与 fileName 连接。 如何正常计算算术运算?
解决方法
查看 sscanf()
或 fscanf()
以获取将每一行解析为操作数和运算符的变量的方法,例如sscanf(buffer,"%d %c %d",&left,&op,&right)
。然后执行计算就很简单了。
if (op == '+') result = left + right;
else if (op == '-') result = left - right;
// etc.
或者,如果您更喜欢 if/else 阶梯,则使用 switch 语句。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。