gpt4 book ai didi

c++ - argc 和 argv 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:45:03 26 4
gpt4 key购买 nike

尝试向我的程序添加命令行参数。所以我正在试验,无法为我的生活弄清楚这个智能感知警告。它一直说它期待一个 ')',但我不知道为什么。

这是它不喜欢的代码:

    // Calculate average
average = sum / ( argc – 1 );

然后它在减法运算符下划线。以下是完整的程序。

#include <iostream>

int main( int argc, char *argv[] )
{
float average;
int sum = 0;

// Valid number of arguments?
if ( argc > 1 )
{
// Loop through arguments ignoring the first which is
// the name and path of this program
for ( int i = 1; i < argc; i++ )
{
// Convert cString to int
sum += atoi( argv[i] );
}

// Calculate average
average = sum / ( argc – 1 );
std::cout << "\nSum: " << sum << '\n'
<< "Average: " << average << std::endl;
}
else
{
// If invalid number of arguments, display error message
// and usage syntax
std::cout << "Error: No arguments\n"
<< "Syntax: command_line [space delimted numbers]"
<< std::endl;
}

return 0;

最佳答案

你认为是减号的字符是别的东西,所以它不会被解析为减法运算符。

您的版本:

average = sum / ( argc – 1 ); 

正确版本(剪切并粘贴到您的代码中):

average = sum / ( argc - 1 ); 

请注意,使用整数计算平均值可能不是最好的方法。您在 RHS 上进行整数运算,然后将其分配给 LHS 上的 float。您应该使用浮点类型执行除法。示例:

#include <iostream>

int main()
{
std::cout << float((3)/5) << "\n"; // int division to FP: prints 0!
std::cout << float(3)/5 << "\n"; // FP division: prints 0.6
}

关于c++ - argc 和 argv 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com