【发布时间】:2014-05-20 20:13:36
【问题描述】:
我正在编写一个命令行计算器。用户提供的每个表达式必须用空格分隔(这是约定)。例如:./calc 2 + 5 * sin 45
问题是,当我尝试获取每个表达式时,我还获得了作为参数的文件夹中的所有文件,这些文件位于我已编译代码的文件夹中......
代码如下:
int main(int argc, char* argv[]) {
double result;
int i;
printf("Number of arguments: %d\n", argc);
for (i=0; i<argc; i++) {
printf("Argument: %s\n", argv[i]);
}
//result = equation(argv, argc);
//printf("Result is: %f", result);
return 0;
}
该示例表达式的输出是:
Number of arguments: 10
Argument: ./calc
Argument: 2
Argument: +
Argument: 5
Argument: calc
Argument: calculate.c
Argument: lab2
Argument: sin
Argument: 45
我的问题是为什么会有calccalculate.clab2(当然编译这个程序的文件夹包含所有三个文件)。我应该在单独的文件夹中编译它吗?我尝试了这种方法,但仍然存在“计算”
ps。我正在使用gcc 编译器:gcc calculate -o calc
【问题讨论】: