gpt4 book ai didi

c - 检查负 argv 的程序不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:44 24 4
gpt4 key购买 nike

我的程序需要在命令行参数中接受一个非负整数。我也必须使用

int main(int argc, string argv[])

声明main.

我的代码:

#include <stdio.h>
#include <cs50.h>

int main(int argc, string argv[])
{
if (argv[1] < 0)
{
printf("Give one non-negative integer.\n");
return 1;
}
}

我的问题:当我输入 -1 作为我的命令行参数时,我的程序没有 printf 或停止运行。它继续到下一个代码块。我能做些什么来修复它(记住我需要保留 main 的确切声明),为什么当前代码是错误的?

最佳答案

argv是一个字符串数组,因此需要一个函数将字符串转换为整数,atoi是您正在寻找的功能。

if (atoi(argv[1]) < 0)

在实际代码中,您可能会检查无效的命令行参数。


我猜在<cs50.h> ,有一行:

typedef char *string;

你应该知道声明 main 的正常方式是:

int main(int argc, char* argv[])

关于c - 检查负 argv 的程序不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19781339/

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