0
我有一个程序,正在从命令行输入并使用它们。这段时间的输入被调用命令如./a.out 1 2 3 4 5
后分别给予,这是很容易使用它们(让刚刚总结他们的时刻) -从字符串到整数从argv
#include <iostream>
#include <cstdlib>
int main(int argc, char **argv) {
int sum = 0;
for(int i = 1; i < argc; ++i) {
sum += std::atoi(argv[i]);
}
std::cout << sum << std::endl;
}
但现在的输入格式已更改为./a.out "1 2 3 4 5"
这方法无法正常工作。我试图把"1 2 3 4 5"
作为一个字符串,但是我不能从中得到整数。我现在也无法想到任何其他解决方案。有没有什么优雅的方法可以在不太复杂的情况下将它们从argv中取出来?
(为什么参数格式改变就像一个教训了吗?)提示:要分割的空格字符的字符串数组落得您可以使用'atoi'转换的(字符串表示形式)数字。或者,您可以一次输入一个数字作为输入。 – struthersneil
@struthersneil没有课程,我正在自学,另一个程序将下列输入传递给我的程序。 –
这很酷,诚实地自我主导的实践和探究是唯一的学习方式。我只是好奇谁控制了输入。 – struthersneil