c - 如何将参数传递给 C 语言中的 main() 函数?

标签 c atoi

我为《C 编程语言》一书中的练习 1-20 编写了一个程序。

程序是:

#include <stdio.h>
#include <stdlib.h> /* for atoi() */
main(int argc, char *argv[]) {
    int c,i,n;
    if (argv[1])
        n=atoi(argv[1]);
    while((c=getchar())!=EOF) {
        if(c!='\t') {
            printf("%c",c);
        }else
        {
            for(i=1;i<=n;i++) {
                printf(" ");
            }
        }
    }
}

如何在没有 atoi() 函数的情况下将参数传递给 C 语言中的 main() 函数?

最佳答案

程序的所有参数都作为字符串传递,argc 告诉您有多少个,argv 包含实际参数。

如果你需要一个数值,你必须以某种方式转换它们,你可以像你所做的那样使用atoi,或者使用许多库之一来解析选项,比如 getopt

您应该检查argc而不是检查argv[1],所以

if (argc >= 2)
    n=atoi(argv[1]);

看看this方便的指南。

关于c - 如何将参数传递给 C 语言中的 main() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013634/

相关文章:

c - 为什么第一个赋值的是str1[0]呢?不应该是 str1[1] 吗?

c - 如何解释 C 程序的输出

c - atoi、atol 和 stoi 分别代表什么?

c - C 语言中的 Atoi 函数?

c - 使用 atoi() 读取一行中的 2 个单独的整数值

python - 与手写 C 相比,pypy 是否可以快速处理线程和套接字?

c - 使用 SOIL 加载嵌入纹理

c - 在 C 中引发堆栈下溢

c++ - 安全地将 std::string_view 转换为 int(如 stoi 或 atoi)

c++ - atoi(string.c_str()) 偶尔出现未处理的异常已更新