C 我不能打印一个整数,它在命令行中作为参数传递

标签 c command-line program-entry-point argument-passing

我正在尝试打印一个由命令行传递的整数,但控制台打印了一个很长的随机值。

我把它放到 RUN "C:\Users\pc\Documents\Visual Studio 2013\Projects\Lab3\Debug\Lab3.exe randomString 4"

#include <stdlib.h>
#include <stdio.h>




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

    printf("%s\n", argv[0]); // Working
    printf("%s\n", (argv[1])); // working
    printf("%d\n", (int)(argv[2])); // NOT Working
    printf("%d\n", argc); // Working
    system("pause");
    return 0;
}

最佳答案

您不能只是将 char* 指针“转换”为 int 并期望它被神奇地转换。那只是打印数组第一个元素的地址。您需要使用 atoi(argv[2]) 等运行时函数将其转换为 int 参见函数详细信息 here

关于C 我不能打印一个整数,它在命令行中作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29243479/

相关文章:

java - 如何解决Java中的NoSuchElementException?

python - 主要功能,pythonic?

从另一个函数调用 main

c - 为什么这个非空终止字符串被正确打印

c# - 如何在多行文本框中制作命令行

bash - 是否可以将延迟的命令执行存储在 bash 变量中?

Java光滑的命令行应用程序?

c - volatile 变量作为函数的参数

c - 生成一个范围内的随机整数(无限循环)

c - 随机 char* args[] 传递给 execv