在我的C脚本中,我的输入打印出乱码,我不知道为什么
或多或少地说我拥有它
int main (int arg, char argv[])
{
printf(argv);
}
这打印出了giberish?
答案 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等函数。