字符串输出乱码

nidh0gg

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

这或多或少是我所拥有的

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

这打印出胡言乱语?

T-Fowl

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

#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). 这里argcARG ument Ç 'mount,并且argvARG ument v alues。argv是一个双指针。如果我们认为char*是一个字符串(内存中以空字符或 结尾的字符序列0),则argv是一个指向argc-many 字符串的指针

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

当您想实际检查第一个参数的值时,取消引用argv以获取带有argv[1] //The first argument. 然后您可以取消引用此字符串以获取第一个字符

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

如果你想检查一个完整的字符串,而不仅仅是单个字符,可以考虑使用如函数STRCMP定义<string.h>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章