【发布时间】:2019-02-07 11:23:08
【问题描述】:
我在运行代码时不断收到这些奇怪的负值。有谁知道它们是什么以及如何获得一个 int (例如 10、20、8...)?为什么我总是得到不同的错误值?当我使用参数 2 和 3 运行代码时,它应该输出 10...
int main(int argc, char *argv[]) {
int h;
int a;
int b;
a = (int) argv[1];
b = (int) argv[2];
if (argc == 3) {
h = 2 * (a + b);
printf("The perimeter of the rectangle is %d\n", h);
} else {
fprintf(stderr, "Usage: %s <arguments>\n", argv[0]);
}
}
Output:
The perimeter of the rectangle is -1874251136
or
The perimeter of the rectangle is -1424723328
or
The perimeter of the rectangle is -940059169
【问题讨论】:
-
呃...您将
char *变量转换为int?为什么?这到底是为了什么?如果要将包含数字的字符串转换为 int,则需要使用strtol()或类似的东西。