【发布时间】:2020-06-27 09:52:03
【问题描述】:
我正在尝试使用 atoi 函数将命令行参数(*argv[])转换为整数
int main(int argc, char *argv[]) {
这是我的尝试
#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <conio.h>
using namespace std;
int main(int argc, char *argv[]) {
int x = 0;
for ( x=0; x < argc; x++ )
{
int x = atoi(argv[1]);
cout << x;
}
return 0;
}
但是这会返回 0,我不确定为什么。谢谢你
【问题讨论】:
-
你是如何运行程序的?你能把内部的
x重命名为别的吗? -
你真的向程序传递了任何参数吗?请尝试对那个循环做一些rubber duck debugging。它不会做你认为它会做的事情。另外请不要在不同的范围内为不同的事物使用相同的变量名,这会使代码更难阅读和理解。
-
argv[1]->argv[x]??
-
请注意,
atoi返回 0,当参数无法转换为整数时,您可能会解析一些根本不是数字的字符串。使用调试器来确保。 -
@Someprogrammerdude 我正在使用 Visual Studio,所以我不确定如何使用它传递参数。我知道的菜鸟
标签: c++ type-conversion atoi