字符串输出Gibberish

时间:2017-03-22 07:29:19

标签: c

在我的C脚本中,我的输入打印出乱码,我不知道为什么

或多或少地说我拥有它

int main (int arg, char argv[])
{
    printf(argv);
}

这打印出了giberish?

1 个答案:

答案 0 :(得分:0)

以下内容应该会产生您正在寻找的结果

#include <stdio.h>

int main(int argc, char **argv)
{
    // Check if there is at least 2 arguments. First argument is the executable name.
    if(argc > 1)
    {
        // Print out a string, followed by a new-line character.
        printf("%s\n", argv[1]);
    }
    // Exit successfully
    return 0;
}

编辑:在此处查看您的代码以及我建议更改的一些内容:

主要功能对int main(int argc, char **argv)的签名。此处argc arg ument c ,而argv arg ument v alues。 argv是一个双指针。如果我们认为char*是一个字符串(内存中由空字符终止的字符序列,或0),那么argv是指向argc的指针 - 很多字符串。

其次,要检查第一个程序参数,请考虑确保实际存在一个参数。 if(argc > 1)将确保程序至少有一个参数(程序的0索引参数是可执行路径)。

如果要实际检查第一个参数的值,请取消引用argv以获取带有argv[1] //The first argument的“字符串”。然后你可以取消引用这个字符串来获得第一个字符

if ( *(argv[1]) == 'f' )
{
    ....
}

如果要检查完整字符串而不是单个字符,请考虑使用<string.h>中定义的strcmp等函数。