在我的 C 脚本中,我的输入打印出乱码,我不知道为什么
这或多或少是我所拥有的
int main (int arg, char argv[])
{
printf(argv);
}
这打印出胡言乱语?
以下应该产生您正在寻找的结果
#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 Ç 'mount,并且argv
是ARG 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] 删除。
我来说两句