linux实现主函数传参的 整型和浮点型的转换 例如 ./app 88 ----%f 88.000000 ./app 88.88 ---- %d 88
时间: 2024-10-08 19:20:22 浏览: 13
在Linux环境下编写C/C++程序时,如果你想要将命令行参数从整数转换为浮点数,或者相反,你可以利用`argc`和`argv`这两个标准库提供的数组。`argc`存储的是命令行参数的数量,`argv`是一个字符串指针数组,其中`argv[1]`开始存放用户输入的参数。
如果你想把整数转换成浮点数,可以这样做:
```c
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc > 1) {
double num = atof(argv[1]);
printf("%.6f\n", num);
// 如果你想把它转换回整数并打印原样,可以用下面这行代替上面的printf,但注意丢失精度
// int num_int = (int)num;
// printf("%d\n", num_int); // 注意这里可能会有溢出,除非你是有意为之
}
return 0;
}
```
当运行`./app 88`时,`atof`函数会把字符串"88"解析成浮点数88.0,并打印出来。
反过来,如果想把浮点数转换为整数(舍去小数部分),可以先检查是否需要四舍五入:
```c
double num = 88.88;
if (num == floor(num)) {
int num_int = (int)num;
printf("%d\n", num_int);
} else {
printf("Cannot convert float to integer without loss of precision.\n");
}
```
运行`./app 88.88`时,由于浮点数会被转换为整数88,所以会打印88。
阅读全文