我正在编写一个可处理 BMP 文件的函数。我在传递命令行参数时遇到问题。
每当我使用调试器时,它都会说我的所有变量都已等于零。为什么是这样?我希望它等于命令行参数。
int main(int argc, char** argv)
{
int side_length = 200;
int x_offset = 0;
int y_offset = 0;
double r = 1.0;
double g = 1.0;
double b = 1.0;
for(int i = 1; i < argc - 1 ; i++)
{
if(strcmp(argv[i], "-s"))
{
side_length = atoi(argv[i+1]);
}
else if(strcmp(argv[i], "-x"))
{
x_offset = atoi(argv[i+1]);
}
else if(strcmp(argv[i], "-y"))
{
y_offset = atoi(argv[i+1]);
}
else if(strcmp(argv[i], "-r"))
{
r = atof(argv[i+1]);
}
else if(strcmp(argv[i], "-g"))
{
g = atof(argv[i+1]);
}
else if(strcmp(argv[i], "-b"))
{
b = atof(argv[i+1]);
}
}
draw_waves(side_length, x_offset, y_offset, r, g, b);
return 0;
}
最佳答案
strcmp()
当两个字符串相等时返回 0,所以你应该这样做:
if(strcmp(argv[i], "-s") == 0)
关于命令行参数未正确传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43669826/