gpt4 book ai didi

c - 在计算器程序中使用 ASCII 转换进行编程

转载 作者:行者123 更新时间:2023-11-30 18:35:49 25 4
gpt4 key购买 nike

我的简单计算器程序需要一些帮助。它似乎工作正常,直到我使用 *乘法符号。当我使用*时符号是 99而不是 ASCII 等效的 42 。它需要的参数是一个整数、运算符( +-*/ )和另一个整数。

#include <stdio.h>
#include <stdlib.h>


/*
void usage() {
printf("This is a calculator program, just put in to numbers and and operator\n");
printf("Example:\n\t2 + 2\n");

}
*/

int main(int argc, char *argv[]) {

int first_number, second_number;
int symbol;
int sum;

first_number = atoi(argv[1]);
second_number = atoi(argv[3]);
symbol = (int)*argv[2];


printf("symbol varable = %d\n", symbol); // debugging for argv[2]

if (symbol == 43 ) {

sum = first_number + second_number;

printf("sum = %d\n", sum);
}

else if (symbol == 45 ) {

sum = first_number - second_number;

printf("sum = %d\n", sum);
}

else if (symbol == 42) {

sum = first_number * second_number;

printf("sum = %d\n", sum);

}
else if (symbol == 47) {

sum = first_number / second_number;

printf("sum = %d\n", sum);
}
return 0;
}

最佳答案

该问题与您的代码无关。

当您使用 12 * 12 之类的命令行参数运行程序时,您在命令行中放置了一个通配符,shell 会看到 * 并将其替换为目录中每个文件名的列表 - 如果符号为 99,则目录中的第一个程序必须以小写 c 开头。

要使其正常工作,请转义命令行参数,例如 12 '*' 1212\* 12 或完全禁用文件名通配,如本答案所示:Stop shell wildcard character expansion?

关于c - 在计算器程序中使用 ASCII 转换进行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com