C++字符* 到整数错误
C++ char* to int error
我想采用一个命令行参数(它将是一个大于零的整数)并将其用作函数中的整数参数(以决定使用函数的哪一部分)。
double func(double x, double y, double z, int n) {
if (n==1) { return 1; }
if (n==2) { return 2; }
// etc
}
int main (int argc, char *argv[]) {
int n = argv[1];
// etc, later I call func(x,y,z,n) with this definition of n
}
当我尝试编译时,我收到一些警告:
warning: invalid conversion from ‘char*’ to ‘int’
warning: initializing argument 4 of ‘double func(double, double, double, int)’
我想我明白为什么会发生这种情况,只是我不知道如何解决它。到目前为止,我发现谷歌搜索都没有太大帮助。我对C++很陌生,任何能为我指明正确方向的信息都会很棒。谢谢你的时间。
argv[1]
的类型为 char*
。使用 strtol 将其转换为整数:
char *ptr;
int n = strtol(argv[1], ptr, 10);
/* Error checking */
您可以使用
std::istringstream
来转换数字:
int main(int ac, char * av[]) {
int av1;
if (2 <= ac
&& std::istringstream(av[1]) >> av1) {
do_something_with(av1);
}
else {
report_error();
}
}
相关文章:
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 为什么在将 void 指针转换为整数指针时出现分段错误
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- C++/错误:表达式必须具有整数或无作用域枚举类型
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- C++字符串到整数错误值可以反转吗?
- 我在c++中遇到了一个奇怪的错误,其中一个计算2个小整数加法的语句溢出到一个长值中
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 自定义哈希表实现-将字符串映射到整数时出现内存错误
- 我需要帮助创建一个评分系统,但它一直给我一个错误,注释掉的整数是给我带来麻烦的部分
- C++ 在方程中使用变量;错误:表达式必须具有整数或无作用域枚举类型及其他
- 谷歌启动2018,测试用例中的整数错误
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 运行时错误:有符号整数溢出:964632435 * 10 无法在类型 'int' 中表示
- C++字符* 到整数错误
- 使用boost multiprecision/mpfr float-字符串不能被解释为有效的整数错误
- 产生十六进制值的整数错误
- 原子整数错误地递增?英特尔 TBB 实施
- Libjson解析整数错误