作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 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
是参数金额数量,并且 argv
是参数ument v值。 argv
是一个双指针。如果我们考虑char*
是一个字符串(内存中以空字符或 0
结尾的字符序列),则 argv
是指向 argc
的指针-许多字符串。
其次,要检查第一个程序参数,请考虑确保那里确实存在一个参数。 if(argc > 1)
将确保程序至少有 1 个参数(程序的 0 索引参数是可执行路径)。
当您想实际检查第一个参数的值时,取消引用 argv
得到一个“字符串”argv[1] //The first argument
。然后您可以取消引用该字符串以获取第一个字符
if ( *(argv[1]) == 'f' )
{
....
}
如果您想检查完整字符串,而不仅仅是单个字符,请考虑使用诸如 strcmp 之类的函数。定义于 <string.h>
.
关于c - 字符串输出乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42945296/
我是一名优秀的程序员,十分优秀!